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

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

举报|2013-08-09 15:52 jiaodachong  |  分类: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的者)可能就会被阻塞,这时候就可以调用

1
phtread_detach()

子线程非阻塞,可立即返回,这将该子线程的状态设置为detached,则该线程运行结束后会自动释放所有资源。

子线程中这个用

1
pthread_detach(pthread_self())

父线程中这么调用

1
pthread_detach(thread_id) //(非阻塞,可立即返回)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值