如果我分离已加入的线程会发生什么?

时间:2014-03-05 16:52:14

标签: c multithreading

问题是相当自我解释的,但这里是上下文,基本上我有一个服务器套接字线程,它在接收新连接时产生子线程。这些子线程接受来自远程连接的数据转储,然后自行清理并在完成后关闭。

目前我有子线程在它们退出之前调用“pthread_detach(pthread_self())”,我正在考虑做的是让程序在程序关闭时等待,以便活动数据转储完成。现在我实际上已经有了一个替代方法,这是我用来跟踪活动线程的动态数组的一部分,但是为了将来的参考,我想知道如果你加入一个注定要在之前分离自己的线程会发生什么它关闭,如果它会导致任何问题。

1 个答案:

答案 0 :(得分:1)

这就是文档所说的内容。

如果某个实现在其生命周期结束后检测到使用了线程ID,则建议该函数失败并报告[ESRCH]错误。(列出两个函数。)

如果你加入一个分离的线程,你应该会收到一个错误。

如果您分离连接的线程,也会发生同样的情况。