我有以下代码,每个代码执行5个10个线程的数组。
问题是此代码在其他数组中执行10个以上的线程之前等待10个线程完成。
我想要一个每n毫秒执行一次数组的方法,无论最后10个是否完成。
@idx = 0
begin
@threads = Array.new
10.times do
@threads << Thread.new{do something}
end
@threads.each{|t| t.join}
@idx += 1
end until @idx == 5
答案 0 :(得分:1)
Thread#join
阻塞,直到线程结束。别叫它。使用sleep
暂停当前线程一定的秒数。
5.times do |idx|
10.times { Thread.new { something... } }
sleep n / 1000.0
end