我正在寫一個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