如何每n毫秒执行一定数量的线程?

时间:2014-10-03 19:01:28

标签: ruby multithreading

我有以下代码,每个代码执行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

1 个答案:

答案 0 :(得分:1)

Thread#join阻塞,直到线程结束。别叫它。使用sleep暂停当前线程一定的秒数。

5.times do |idx|
  10.times { Thread.new { something... } }
  sleep n / 1000.0
end