Posted on 2009-08-05 11:22
Prayer 閱讀(1797)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
LINUX/UNIX/AIX
我用了pthread_kill(tid,SIGTERM), pthread_kill(tid,SIGKILL),這兩個(gè)把整個(gè)進(jìn)程給停止了
pthread_kill是向進(jìn)程發(fā)送信號(hào),但信號(hào)處理是針對(duì)整個(gè)進(jìn)程的。因此,不能發(fā)送SIGKILL,因?yàn)闊o法捕獲。發(fā)送SIGTERM,要在線程內(nèi)接管該信號(hào),然后用pthread_exit退出線程。如果不接管,整個(gè)進(jìn)程就會(huì)退出。
這樣做....
pthread_kill(thdinfo->;th, SIGQUIT);
線程中的sinal_handler 這樣做
void catch_quit(int sig)
{
pthread_exit(0);
}