首页 > 解决方案 > pthread_exit() 对可连接线程的资源有什么影响?

问题描述

手册页中描述的调用效果pthread_exit()如下:

任何由 pthread_cleanup_push(3) 建立的尚未弹出的清理处理程序都将被弹出(与它们被推送的顺序相反)并执行。如果线程有任何线程特定的数据,则在执行清理处理程序后,会以未指定的顺序调用相应的析构函数。

所以它声明一些线程资源将在此后不久释放。但是,有可加入的线程,其资源的释放与加入的事件相关。

我怎样才能把这两个想法联系起来?如果可加入线程调用pthread_exit()不应该在该线程加入之前执行其资源析构函数?可能它的清理处理程序也必须等待这个事件,或者不是?

标签: linuxmultithreadingposix

解决方案


推荐阅读