我如何确定分离的pthread是否仍然存在?

我有一个与线程的通信通道(从线程向外指向的单向队列),但是如果线程死后没有喘息怎么办?

我应该辞职使用过程信号还是可以以某种方式探测线程的活跃性?

最佳答案

对于可连接(即不分离)的pthread,可以这样使用pthread_kill:

int ret = pthread_kill(YOUR_PTHREAD_ID, 0);

如果获得 ESRCH 值,则可能是线程死了。

但是,这不适用于分离的pthread,因为它结束后可以将其线程ID重新用于另一个线程。

从评论:

关于linux - 如何确定分离的pthread是否还存在?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1693180/

10-13 05:26