Laz*_*zer 22 shell process kill thread multithreading
$ ps -e -T | grep myp | grep -v grep
797 797 ? 00:00:00 myp
797 798 ? 00:00:00 myp
797 799 ? 00:00:00 myp
797 800 ? 00:00:00 myp
Run Code Online (Sandbox Code Playgroud)
这显示了mypPID = 797的进程和具有不同 SPID 的四个线程。
如何在不杀死整个进程的情况下杀死进程的特定线程。我知道在某些情况下,当对该特定线程存在致命依赖时,这可能根本不可能。但是,在任何情况下都可能吗?是的,如何?
我试过kill 799了,过程本身就终止了。现在我不确定这是因为有依赖项在myp没有进程的情况下导致失败,800或者因为 kill 很简单,无法杀死单个进程。
gvk*_*vkv 29
线程是进程的一个组成部分,不能在进程之外被杀死。有pthread_kill函数,但它仅适用于线程本身的上下文。从链接中的文档:
请注意, pthread_kill() 仅导致在给定线程的上下文中处理信号;信号动作(终止或停止)影响整个过程。