0
pthread可以分离吗?线程可以在不停止主进程的情况下被操作系统杀死?可以分离pthread die吗?
pthread可以分离吗?线程可以在不停止主进程的情况下被操作系统杀死?可以分离pthread die吗?
如果你编程一个分离的线程死后做它的工作,那么它会死。在完成其工作后,该功能可以简单地结束或致电pthread_exit
。
您可以通过发送信号pthread_kill
或使用全局标志或IPC形式(例如管道或消息队列)来从另一个线程中终止分离的线程。请注意,“杀死”这个词在英语和节目的多重含义之间是不明确的。该线程需要编程以对任何使用的通知机制作出反应。例如,应该为线程安装信号处理程序,并且使用pthread_kill
或pthread_sigqueue
发送的非进程范围信号(例如SIGUSR1)。最后pthreads有一个取消机制,你可以使用pthread_cancel
和相关的调用。在所有这些场景中,重点是必须对线程进行编程以优雅地处理请求,但“分离”并不意味着“不可访问”。
如果信号的处置停止,继续或终止它将影响整个过程而不是单个线程。
'pthread_kill'不会杀死任何东西,就像'kill'不会杀死任何东西。它发送一个信号。一些信号具有**整个进程的**默认行为终止**(从来没有一个线程);一个('SIGKILL')总是导致进程终止。如果没有任何线程从启动函数返回,调用'pthread_exit',或者作用于取消请求,就没有办法让任何线程“死掉”。 –
我知道。我下班。稍后我会给出更完整的答案。 – Duck
谢谢鸭子。我正在寻找一个线程是否可以在没有父进程停止的情况下意外停止。 – CoryC