如何在多个线程中检查每个线程是否已完成?

时间:2014-06-11 22:22:44

标签: ruby-on-rails ruby multithreading ruby-on-rails-3

threads = []  
images.each do |image|  
threads << Thread.new do
     creating images 
     .........................
   end
end
threads.each(&:join)

所以在完成图像创建后我想继续下去。那我怎么能检查每个线程执行是否完成。

先谢谢

1 个答案:

答案 0 :(得分:0)

你可以在threads.each(&:join)之后放下你的下一件事。线程join使您的线程逐个处理,因此您的最后一个线程将在那里完成并开始执行主线程或调用线程。如果您仍想检查线程是否存活,那么您可以执行以下操作:

  while threads.any?(&:alive?) do
    #do nothing
  end