我在irb中运行以下命令,但它在完成后不会中断/退出:
count = 0
Thread.new do
while count < 20 do
puts 'Hai'
count += 1
end
Thread.kill
end
它只是挂在控制台中。有没有办法完全退出线程?根据我的研究,Thread应该在它退出块之后结束,但我在网上找不到任何关于这个的信息。谢谢!
答案 0 :(得分:0)
这是一个小例子,愿它能帮到你。
begin
t = Thread.new do
loop do
@bar.increment!
STDERR.flush
sleep 1
end
end
yield
STDERR.puts ' done!' unless $?.exitstatus > 0
rescue => e
STDOUT.puts "Error:"
STDOUT.puts e.message
ensure
t.kill
end