如何查看一个进程中的某个线程是否存活

2025-05-14 12:06:07
推荐回答(1个)
回答(1):

pthread_kill,向线程发送signal,用signal()去抓信号并加上处理函数。


int pthread_kill(pthread_t thread, int sig)

如果int sig的参数不是0,那一定要清楚到底要干什么,而且一定要实现线程的信号处理函数,否则,就会影响整个进程。

如果int sig是0,这是一个保留信号,一个作用是用来判断线程是不是还活着

使用pthread_kill函数检测一个线程是否还活着的程序:

int kill_rc = pthread_kill(thread_id,0);

if(kill_rc == ESRCH)

printf("the specified thread did not exists or already quit/n");

else if(kill_rc == EINVAL)

printf("signal is invalid/n");

else

printf("the specified thread is alive/n");