您的位置:首页 > 运维架构 > Linux

c/c++ linux c 多线程 pthread_detach(id); phthread_join(id,0);

2014-07-26 09:22 561 查看


c/c++ linux c 多线程 pthread_detach(id); phthread_join(id,0);

举报|2013-08-09
15:52jiaodachong | 分类:C/C++ | 浏览502次
phtread_detach(id); //1

pthread_join(id,0);//2

以上是多线程技术中的两个函数,我想知道的是 1,2两句同时用和只用1,有没有区别?

有什么区别? 谢谢!

注:id为子线程的线程号。


分享到:



2013-08-10 23:35网友采纳

是这样的,pthread_join()这个函数在多线程开发中主线程主要用来获得子线程结束的状态以便回收子线程的资源。

但是有时候会出现你调用pthread_join()后,子线程还在运作,这样调用者(调用pthread_join的者)可能就会被阻塞,这时候就可以调用
子线程非阻塞,可立即返回,这将该子线程的状态设置为detached,则该线程运行结束后会自动释放所有资源。

子线程中这个用
父线程中这么调用
他们都是这将该子线程的状态设置为detached,则线程运行结束后会自动释放所有资源。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: