如何在我的 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阻塞,直到所有线程都完成。