ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2021-10-02

2021-10-02 18:01:06  阅读:149  来源: 互联网

标签:02 10 join 函数 取消 线程 2021 pthread detach


linux学习—线程

线程回收

方法1:在创建线程的时候通过设置pthread_create函数的第二个参数将线程设置为detach状态
方法2:在主线程中调用pthread_join来等待子线程退出
方法3:在主线程或子线程中调用pthread_detach函数设置线程的detach状态
(注意:detach状态下的线程由系统负责释放资源,此状态下的线程pthread_join等待不到,但是一旦阻塞在pthread_join函数中,此时设置子线程detach状态不能立马让主线程pthread_join解除阻塞状态)

线程返回值

线程处理函数放回值是void但是可以通过强制转换(void *)来返回值,由pthread_join第二个参数捕捉,而pthread_join返回值表示线程的状态。

线程取消和线程清理

主线程或其他线程可以通过调用pthread_cancel取消某个线程的执行,子线程可以通过函数pthread_setcancelstate设置是否接受线程取消,也可以通过pthread_setcanceltype设置线程是立即取消还是延迟取消(延迟取消函数很多,一般不采用)。
设置线程清理函数后,线程取消、pthread_exit()、return(手册上说不会调用)时都会根据pthread_cleanup_push压栈的逆序调用线程清理函数

标签:02,10,join,函数,取消,线程,2021,pthread,detach
来源: https://blog.csdn.net/qq_43062920/article/details/120586134

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有