浅谈pthread_join(), pthread_detach(), pthread_exit()

pthread_join()和pthread_detach()部分测试代码可参考 https://blog.csdn.net/weibo1230123/article/details/81410241

一.pthread_join()

pthread_join()即是子线程合入主线程,主线程阻塞等待子线程结束,然后回收子线程资源。

pthread_create()函数在创建进程的时候默认创建出来的进程是joinable的状态,也就是说在主进程中后续需要加上pthread_join()这样一个函数保证在主线程结束之前能够运行子线程,不然就可能出现主线程已经运行完毕但是子线程创建了还没运行这样的一个情况(会出现内存泄漏的问题)。

二.pthread_detach()

用到这一个函数的目的是主线程在运行的时候可能希望不阻塞能够继续运行,让子线程自己运行完毕后自己释放资源,即异步结束,调用join()可以看成是同步结束。这一个函数既可以在主线程中写也可以在子线程中写,在子线程中一般会调用pthread_self()函数,主线程中则需要知道要detach的子线程ID。

三.pthread_exit()

退出线程,并且保留退出状态直到调用调用进程调用pthread_join()或者该自己线程已经detach过了

补:记录一个介绍pthread_cond_wait()函数的很清晰的博客 https://blog.csdn.net/luckyabcd/article/details/4284874?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值