Posted on 2009-08-05 11:22
Prayer 閱讀(1797)
評論(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);
}