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/

  • 相关阅读:
    Java在ACM中的应用
    acm->stl
    残缺棋盘--状压DP
    EOJ Monthly 2019.3 A
    【CF1141E】Superhero Battle
    AtCoder Grant Contest 10.F 博弈
    莫比乌斯反演总结
    P2257 YY的GCD
    BZOJ1011 莫比乌斯反演(基础题
    HDU1695 莫比乌斯反演
  • 原文地址:https://www.cnblogs.com/yfz0/p/5800484.html
Copyright © 2011-2022 走看看