线程有sigkill吗?

时间:2015-04-21 09:48:33

标签: ruby multithreading

我想有些线程可能不愿意死。

t = Thread.new { begin
                    puts 'do'
                    sleep 10
                    puts 'done'
                 ensure
                    loop { puts "really don't wanna die" }
                 end
               }

^想象一下如果你试图Thread#kill这个讨厌的混蛋会发生什么。

2 个答案:

答案 0 :(得分:0)

t.exit
t.alive? => false

如果您使用陷阱,则应阅读trap("EXIT")

答案 1 :(得分:-1)

如果您询问如何杀死进程,则可以执行

Process.kill("KILL", pid)

一旦它被杀死-9,内核就会杀死进程本身。用它杀死线程。 此外,你可以捕获这个信号并优雅地杀死它

Signal.trap("KILL")  { puts "Child died" }

这会回答你的问题吗?