【发布时间】:2010-08-14 03:13:44
【问题描述】:
调用 Thread.join 会阻塞当前(主)线程。然而,当主线程退出时,不调用 join 会导致所有生成的线程都被杀死。如何在 Ruby 中生成持久子线程而不阻塞主线程?
这是一个典型的 join 用法。
for i in 1..100 do
puts "Creating thread #{i}"
t = Thread.new(i) do |j|
sleep 1
puts "Thread #{j} done"
end
t.join
end
puts "#{Thread.list.size} threads"
这给了
创建线程 1
线程 1 完成
创建线程 2
线程 2 完成
...
1 个线程
但我正在寻找如何获得这个
创建线程 1 创建线程 2 ... 101 个线程 线程 1 完成 线程 2 完成 ...代码在 Ruby 1.8.7 和 1.9.2 中给出相同的输出
【问题讨论】:
标签: ruby multithreading