0

我在 irb 中运行了以下命令,但它在完成时不会中断/退出线程:

count = 0

Thread.new do
  while count < 20 do
    puts 'Hai'
    count += 1
  end
  Thread.kill
end

它只是挂在控制台中。有没有办法完全退出线程?根据我的研究,线程应该在退出块后结束,但我在网上找不到任何关于此的信息。谢谢!

4

1 回答 1

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
于 2013-08-06T04:50:28.517 回答