当前位置: 技术问答>linux和unix
在一个进程的主线程中如何判断自己创建的线程是否存在?
来源: 互联网 发布时间:2015-12-11
本文导语: 我现在遇到了这样一个问题:在线程a中调用exit(0)使整个进程退出,但在进程的退出处理中,我需要停止各个线程的运行,但线程a在调用exit(0)时自己已经退出,所以我在退出处理中停止线程a的时候便无法停止。 我...
我现在遇到了这样一个问题:在线程a中调用exit(0)使整个进程退出,但在进程的退出处理中,我需要停止各个线程的运行,但线程a在调用exit(0)时自己已经退出,所以我在退出处理中停止线程a的时候便无法停止。
我想这样解决:在进程的退出处理中停止线程a之前,先判断线程a是否存在,如果存在,执行删除,否则对线程a不予处理,执行下一个线程的删除操作。
那么我该如何当前判断线程a是否存在?
我想这样解决:在进程的退出处理中停止线程a之前,先判断线程a是否存在,如果存在,执行删除,否则对线程a不予处理,执行下一个线程的删除操作。
那么我该如何当前判断线程a是否存在?
|
#include
#include
int pthread_kill(pthread_t thread, int signo);
对子线程发信号用pthread_kill,signo为0时,什么也不做,可以用来测试目标线程是否存在。
如果测试进程是否存在可以使用kill发送信号,同样发送0信号可以测试目标进程是否存在。
#include
int pthread_kill(pthread_t thread, int signo);
对子线程发信号用pthread_kill,signo为0时,什么也不做,可以用来测试目标线程是否存在。
如果测试进程是否存在可以使用kill发送信号,同样发送0信号可以测试目标进程是否存在。