zoukankan      html  css  js  c++  java
  • 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,则该线程运行结束后会自动释放所有资源。


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


  • 相关阅读:
    TCP三次握手与四次挥手
    centos7快捷键
    关于学习简单讲解的个人观点
    继承与派生
    python封装
    python之面向对象编程
    python之re模块
    python之hashlib、suprocess模块
    python之shelve、xml、configparser模块
    python之json、pickle模块
  • 原文地址:https://www.cnblogs.com/java20130726/p/3218445.html
Copyright © 2011-2022 走看看