Joh*_*0te 5 c++ multithreading pthreads
当您使用PThreads取消时,我对清理订单有点困惑.通常,如果您的线程已分离,它会在终止时自动清除.如果它没有分离,则需要加入它以回收系统资源.
我正在阅读的教科书中陈述以下内容,奇怪的是,加入对于取消而言是可选的:
"如果你需要知道线程何时实际终止,你必须在取消后调用pthread_join加入它."
那么,我是否需要加入已取消的线程来释放其资源 - 如果没有,那么为什么呢?
TLPI说:
在接收到取消请求时,其可取消性被启用并且延迟的线程在其下一个到达取消点时终止.如果线程没有分离,那么进程中的其他一些线程必须与它连接,以防止它成为僵尸线程.
此外,由于取消线程通常不会立即完成(阅读更多关于"取消点")而不加入您无法确定该线程是否实际被取消.
| 归档时间: |
|
| 查看次数: |
4249 次 |
| 最近记录: |