Posted on 2009-08-05 11:22
Prayer 阅读(1788)
评论(0) 编辑 收藏 引用 所属分类:
LINUX/UNIX/AIX
我用了pthread_kill(tid,SIGTERM), pthread_kill(tid,SIGKILL),这两个把整个进程给停止了
pthread_kill是向进程发送信号,但信号处理是针对整个进程的。因此,不能发送SIGKILL,因为无法捕获。发送SIGTERM,要在线程内接管该信号,然后用pthread_exit退出线程。如果不接管,整个进程就会退出。
这样做....
pthread_kill(thdinfo->;th, SIGQUIT);
线程中的sinal_handler 这样做
void catch_quit(int sig)
{
pthread_exit(0);
}