当前位置: 技术问答>linux和unix
怎么杀死一个线程?
来源: 互联网 发布时间:2015-11-09
本文导语: 在主线程中,如何杀死一个正在运行的子线程? 我用了pthread_kill(tid,SIGTERM), pthread_kill(tid,SIGKILL),这两个把整个进程给停止了 | int pthread_cancel(pthread_t thread); | pthread_kill是向进...
在主线程中,如何杀死一个正在运行的子线程?
我用了pthread_kill(tid,SIGTERM), pthread_kill(tid,SIGKILL),这两个把整个进程给停止了
我用了pthread_kill(tid,SIGTERM), pthread_kill(tid,SIGKILL),这两个把整个进程给停止了
|
int pthread_cancel(pthread_t thread);
|
pthread_kill是向进程发送信号,但信号处理是针对整个进程的。因此,不能发送SIGKILL,因为无法捕获。发送SIGTERM,要在线程内接管该信号,然后用pthread_exit退出线程。如果不接管,整个进程就会退出。