分离的pthread可以死吗?

时间:2012-11-16 22:40:51

标签: c pthreads posix

分离的pthread可以死吗?线程可以在不停止主进程的情况下被OS杀死吗?

1 个答案:

答案 0 :(得分:1)

如果你在完成它的工作后编写一个分离的线程就会死掉,那么它就会死掉。在完成其工作后,该函数可以简单地结束或调用pthread_exit

您可以通过发送带有pthread_kill的信号或使用全局标志或IPC形式(如管道或消息队列)来从另一个线程中终止分离的线程。请注意,“杀死”这个词在英语和编程中的多重含义之间是不明确的。需要对线程进行编程以对任何使用的通知机制作出反应。例如,应为线程安装信号处理程序,并为pthread_killpthread_sigqueue发送非过程范围的信号,例如SIGUSR1。最后,pthreads具有您可以使用pthread_cancel和相关调用使用的取消机制。在所有这些场景中,重点是必须对线程进行编程以处理优雅地死亡的请求,但“分离”并不意味着“无法访问”。

如果信号的处理停止,继续或终止它将影响整个过程而不是单个线程。