我如何确定分离的pthread是否仍然存在?
我有一个与线程的通信通道(从线程向外指向的单向队列),但是如果线程死后没有喘息怎么办?
我应该辞职使用过程信号还是可以以某种方式探测线程的活跃性?
最佳答案
对于可连接(即不分离)的pthread,可以这样使用pthread_kill:
int ret = pthread_kill(YOUR_PTHREAD_ID, 0);
如果获得 ESRCH 值,则可能是线程死了。
但是,这不适用于分离的pthread,因为它结束后可以将其线程ID重新用于另一个线程。
从评论:
关于linux - 如何确定分离的pthread是否还存在?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1693180/