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");