Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

如何杀死一个正在运行的子线程

Posted on 2009-08-05 11:22 Prayer 阅读(1771) 评论(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);
}

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理