分离的pthread可以死吗?线程可以在不停止主进程的情况下被OS杀死吗?
答案 0 :(得分:1)
如果你在完成它的工作后编写一个分离的线程就会死掉,那么它就会死掉。在完成其工作后,该函数可以简单地结束或调用pthread_exit
。
您可以通过发送带有pthread_kill
的信号或使用全局标志或IPC形式(如管道或消息队列)来从另一个线程中终止分离的线程。请注意,“杀死”这个词在英语和编程中的多重含义之间是不明确的。需要对线程进行编程以对任何使用的通知机制作出反应。例如,应为线程安装信号处理程序,并为pthread_kill
或pthread_sigqueue
发送非过程范围的信号,例如SIGUSR1。最后,pthreads具有您可以使用pthread_cancel
和相关调用使用的取消机制。在所有这些场景中,重点是必须对线程进行编程以处理优雅地死亡的请求,但“分离”并不意味着“无法访问”。
如果信号的处理停止,继续或终止它将影响整个过程而不是单个线程。