我正在写一个ruby程序,它将使用线程来完成一些工作。正在完成的工作需要非确定的时间才能完成,并且范围可以从5到45+秒。下面是什么的线程代码看起来像一个粗略的例子:当你不加入你的主题时会发生什么?
loop do # Program loop
items = get_items
threads = []
for item in items
threads << Thread.new(item) do |i|
# do work on i
end
threads.each { |t| t.join } # What happens if this isn't there?
end
end
我更倾向于将跳过加入线程,而不是阻止整个应用程序。然而,我不知道这会带来什么长期影响,特别是因为代码几乎立即运行。这是安全的吗?还是有更好的方法来产生一个线程,让它工作,并完成时清理,都在一个无限循环内?
的线程不需要报到主程序。 – 2010-11-04 18:29:09