And*_*ock 2 ruby multithreading
我在我的ruby构建脚本中有一个循环,遍历每个项目并调用msbuild并执行各种其他位,如minify css/js.
每个循环迭代都独立于其他循环,所以我想对它进行分析.
我该怎么做呢?
我试过了:
myarray.each{|item|
Thread.start {
# do stuff
}
}
puts "foo"
Run Code Online (Sandbox Code Playgroud)
但红宝石似乎马上退出(打印"foo").也就是说,它运行在循环上,启动一个线程的负载,但因为没有后each,红宝石退出杀死其他线程:(
我知道我能做到thread.join,但如果我在循环中这样做,那么它就不再平行了.
我错过了什么?
我知道http://peach.rubyforge.org/,但使用它我得到各种奇怪的行为,看起来像我不知道如何解决的变量范围问题:(
编辑:如果我可以在放入"foo"之前等待所有子线程执行,或者至少主ruby线程退出,这将是有用的.这可能吗?
谢谢
将所有线程存储在一个数组中并循环遍历数组调用连接:
threads = myarray.map do |item|
Thread.start do
# do stuff
end
end
threads.each { |thread| thread.join }
puts "foo"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
655 次 |
| 最近记录: |