创建一个线程默认的状态是joinable。

如果一个线程结束运行但没有被join,则它的状态类似于进程中的Zombie Process,即还有一部分资源没有被回收(退出状态码).

所以创建线程者应该调用pthread_join来等待线程运行结束,并可得到线程的退出代 码,回收其资源(类似于wait,waitpid) 。

但是调用pthread_join(pthread_id)后,如果该线程没有运行结束,调用者会被阻塞,在有些情况下我们并不希望如此。

比如在Web服务器中当主线程为每个新来的链接创建一个子线程进行处理的时候,主线程并不希望因为调用pthread_join而阻塞(因为还要继续处理之后到来的链接),这时可以在子线程中加入代码pthread_detach(pthread_self())

或者父线程调用pthread_detach(thread_id)(非阻塞,可立即返回)   

这将该子线程的状态设置为detached,则该线程运行结束后会自动释放所有资源。

原文地址:http://blog.163.com/niuxiangshan@126/blog/static/170596595201112410940967/

最新文章

  1. RESTful API 设计指南
  2. Apache+Tomcat配置方法
  3. dg
  4. I/O工作机制
  5. Perl参考函数
  6. iOS学习笔记之ARC内存管理
  7. RASP 完爆 WAF 的5大理由!
  8. 通过scrollerview自定义collectionview(常用于推荐关注界面)
  9. unity3d 使用背景贴图
  10. document.getElementById的简便方式
  11. LIBSVM之一
  12. zabbix 组信息
  13. ASP.NET动态的网页增删查改
  14. wpf 9张图片的连连看
  15. iOS 进阶—— iOS 内存管理
  16. Spring 源码学习系列
  17. pyothon学习笔记2-元组
  18. CentOS7 查看操作系统版本信息
  19. HDU1890-Robotic Sort-Splay
  20. [jzoj]1417.数学题

热门文章

  1. Intellij idea 切换SVN路径
  2. Linux 服务器配置JDK
  3. mysql时间相减的问题
  4. Python菜鸟之路:Python基础-Socket编程-2
  5. Java 重写 equals 与 hashCode 的注意事项
  6. PHP开发环境搭建(转载)
  7. ABAP 面向对象(Object Orientation) OO
  8. Windows下重置MySQL密码(最开始是因为Access denied for user 'root'@'localhost'这个原因,无法登陆 'root'@'localhost')
  9. python3 批量缩放图片为iphone5的640*1136以下
  10. python 批量修改预定字符串并将修改后的字符串插入文件指定位置