如何在我的 Rails 线程池中实现 "join"?
How do I implmeent "join" in my Rails thread pool?
我正在使用 Rails 5.0 和 Ruby 2.4。我有这个 gem
gem 'concurrent-ruby'
我想用工作加载线程池,但我不想继续执行,直到线程池中的所有内容都执行完毕。所以我尝试了这个...
pool = Concurrent::FixedThreadPool.new(@concurrent_threads)
links.each do |link|
pool.post do
... do work ...
end
end
pool.shutdown
但这似乎不起作用。也就是说,在 "pool.shutdown" 行之后执行了代码,我希望它的工作方式有点像“.join”,也就是说,在一切完成之前暂停执行。我该怎么做?
从the docs开始,调用pool.shutdown
后,可以调用pool.wait_for_termination
阻塞,直到所有线程都完成。
我正在使用 Rails 5.0 和 Ruby 2.4。我有这个 gem
gem 'concurrent-ruby'
我想用工作加载线程池,但我不想继续执行,直到线程池中的所有内容都执行完毕。所以我尝试了这个...
pool = Concurrent::FixedThreadPool.new(@concurrent_threads)
links.each do |link|
pool.post do
... do work ...
end
end
pool.shutdown
但这似乎不起作用。也就是说,在 "pool.shutdown" 行之后执行了代码,我希望它的工作方式有点像“.join”,也就是说,在一切完成之前暂停执行。我该怎么做?
从the docs开始,调用pool.shutdown
后,可以调用pool.wait_for_termination
阻塞,直到所有线程都完成。