来自:http://man7.org/linux/man-pages/man3/pthread_join.3.html
无法加入可连接的线程(即未分离的线程)会产生“僵尸线程”。避免这样做,......
我怎样才能避免这样做?我不明白,因为当我尝试加入一个帖子时,为什么我故意想要失败呢?
答案 0 :(得分:0)
我认为手册页意味着如果你的应用程序在终止之后没有加入一个可连接的线程,但只是忘记了它,那么终止的线程就变成了一个僵尸线程,并且僵尸很糟糕。
也就是说,失败在这里意味着故意不执行。
答案 1 :(得分:0)
Failure to join with a thread that is joinable (i.e., one that is not
detached), produces a "zombie thread". Avoid doing this
它表示您应该确保处理可能导致pthread_join
没有被调用线程的所有可能情况。 (并导致僵尸)
进一步说明,
There is no pthreads analog of waitpid(-1, &status, 0), that is,
"join with any terminated thread".
您没有任何功能,例如需要检查的流程,因此最好通过正确处理代码中的案例来避免错过对pthread_join
的调用。
答案 2 :(得分:0)
避免创建“Zombie Thread” 你需要做这些事情:
答案 3 :(得分:0)
避免僵尸的最简单方法是使用分离的线程功能。在线程入口点函数中调用pthread_detach(pthread_self())
,或在创建线程时调用thid = pthread_create(...); pthread_detach(thid)
。