linux下线程编程的注意到和推荐做法

80 篇文章 1 订阅
78 篇文章 0 订阅
本文探讨了在Linux环境下进行线程编程时容易遇到的误区,包括线程的创建、同步与销毁等方面的问题,并提出了相应的推荐做法,帮助开发者优化线程管理,提升程序效率。
摘要由CSDN通过智能技术生成

来自:http://blog.csdn.net/shanzhizi

几个误区及注意点:

 误区1: 分离 线程不能被cancel.
这是将pthread_join与pthread_cancel搞混了。
thread分离可以在创建时设定,也可以用pthread_detach()在创建后设定。
被设定成分离 线程后,表明它在退出thread时会自动回收资源。所以不需要pthread_join. 但分离thread完全可以接收pthread_cancel()来退出。
 
误区2:已经退出的thread,再去对它pthread_cancel()会出错。
不会出错,如果某thread已经退出,再向它发送pthread_cancel().不会出错。但会返回ESRCH。此值为3。
 ESRCH  No thread could be found corresponding to that specified by the given thread ID.
 
这里显示出:一个thread,不管自身return或pthread_exit(). 此thread都算停掉了。只是不分离thread需要使用pthread_join来回收资源而已。
 
 
注意点1:不管是否分离,主thread先于其它thread退出,都是不可控的。也就是说会不可预知错误。
所以,主thread不要使用return,exit等退出。 而是使用pthread_exit().
主thread使用pthread_exit(). 则会阻赛之,直到所有子thread退出后才退出。
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值