pthread_detach

创建一个线程默认的状态是joinable, 如果一个线程结束运行但没有被join,则它的状态类似于进程中的Zombie Process,即还有一部分资源没有被回收(退出状态码),所以创建线程者应该调用pthread_join来等待线程运行结束,并可得到线程的退出代码,回收其资源(类似于wait,waitpid)   但是调用pthread_join(pthread_id)后,如果该线程没有运行结束,调用者会被阻塞,在有些情况下我们并不希望如此,比如在Web服务器中当主线程为每个新来的链接创建一个子线程进行处理的时候,主线程并不希望因为调用pthread_join而阻塞(因为还要继续处理之后到来的链接),这时可以在子线程中加入代码   pthread_detach(pthread_self())   或者父线程调用   pthread_detach(thread_id)(非阻塞,可立即返回)   这将该子线程的状态设置为detached,则该线程运行结束后会自动释放所有资源。

pthread_detach相关推荐

  1. pthread_detach 常规使用记录

    是和主线程分离的,所以一旦主线程退出,pthread_detach 的线程也会退出,注意主线程的延续性或者,阻塞一个监听的线程

  2. LINUX - pthread_detach()与pthread_join()

    pthread_detach()即主线程与子线程分离,子线程结束后,资源自动回收. int pthread_join(pthread_t tid, void **thread_return);{suc ...

  3. linux中pthread_join()与pthread_detach()详解

    前言: 1.linux线程执行和windows不同,pthread有两种状态joinable状态和unjoinable状态,如果线程是joinable状态,当线程函数自己返回退出时或pthread_e ...

  4. pthread_join和pthread_detach详解

    在任何一个时间点上,线程是可结合的(joinable)或者是分离的(detached).一个可结合的线程能够被其他线程收回其资源和杀死.在被其他线程回收之前,它的存储器资源(例如栈)是不释放的.相反, ...

  5. linux 线程pthread_detach,linux线程之pthread_join和pthread_detach

    在任何一个时间点上,线程是可结合的(joinable)或者是分离的(detached).一个可结合的线程能够被其他线程收回其资源和杀死.在 被其他线程回收之前,它的存储器资源(例如栈)是不释放的.相反 ...

  6. OS / Linux / pthread_join() 和 pthread_detach() 函数区别

    一.线程的两种状态 对于 linux 线程来说,pthread 有两种状态:joinable 和 unjoinable. 若线程的状态是 joinable,当线程函数自己返回退出时或 pthread_ ...

  7. 2线程原语:pthread_create(),pthread_self(),pthread_exit(),pthread_join(),pthread_cancel(),pthread_detach(

     1 pthread_create()函数 创建线程 A:依赖的头文件 #include<pthread.h> B:函数声明 int pthread_create(pthread_t ...

  8. pthread_detach函数

    int pthread_detach(pthread_t thread);    成功:0:失败:错误号 作用:从状态上实现线程分离,注意不是指该线程独自占用地址空间. 线程分离状态:指定该状态,线程 ...

  9. linux下多线程之pthread_detach(pthread_self())

    写个碰到的问题,记录下自己的技术之路点滴 pthread_detach(pthread_self()) linux线程执行和windows不同,pthread有两种状态joinable状态和unjoi ...

  10. pthread_detach():主线程与子线程分离,子线程结束后,资源自动回收

    https://github.com/Rtoax/test/tree/master/c/glibc/pthread 目录 前言 pthread_join() pthread_detach() 前言 1 ...

最新文章

  1. linux 内核编译错误 .size expression for copy_user_generic_c does not evaluate to a constant
  2. python【蓝桥杯vip练习题库】BASIC-11 十六进制转十进制
  3. 前端学习(675):if else if
  4. 如梦如幻,开源实时的天空特效算法!
  5. 人到了中年在职场中就应该保持内敛的心态
  6. sqlplus中设置在屏幕中上不打印出输出
  7. java反射机制的实现机制_Java反射机制实践
  8. 点击谷歌浏览器安装包没有反应
  9. 中国航空零部件制造行业业十四五投资发展规划及发展前景预测报告2022-2028年版
  10. python 读取地震道头数据_通过计算机编程快速读取地震数据的方法
  11. 惠普电脑按F12锁屏如何解?
  12. echo和narcissus寓意_【故事】三毛的英文名Echo,有什么含义?
  13. 【2019.05】腾讯防水墙滑动验证码破解 python + selenium + OpenCV
  14. p标签中的文字垂直居中
  15. Web前端HTML-CSS学习笔记
  16. *PAT_甲级_1072 Gas Station (30point(s)) (C++)【Dijkstra/字符串截取/与数字相互转换】
  17. 如何避免自己发出的邮件被误判为垃圾邮件
  18. 证券数据接口 查询证券编码及基本上市信息
  19. coco数据集(yoloV5格式)中生成子类数据集
  20. OpenCV的下载、安装和配置

热门文章

  1. 怎么放大整个html页面,怎么把网页的字变大?教你网页操作实用技巧【步骤详解】...
  2. 模拟电子技术(学习笔记 1)
  3. 初试hive-创建内表(最简单的表),load加载方式简介
  4. 枚举类实现接口【精】
  5. 计算机桌面文件能单独设密码吗,win7文件夹设置密码_给单独一个文件夹设密码...
  6. Top100图神经网络论文大盘点
  7. charles 抓包图片显示_抓包修改工具(Charles)
  8. 第五部分 3D环绕声技术
  9. ASML、光刻机小文预告
  10. Lonlife-ACM 1014 - Absolute Defeat [差分]