我试图在ruby中使用多线程来同时处理大量的网络连接,但我真的停留在基础上了。
我试过这个:
for i in 1..1000 do
Thread.new{load(i)}
end
def load(i)
File.open(filePath, "w") do |output|
open(imageURL) do | input |
output << input.read
end
end
end这只是下载脚本的一部分,用于显示我正在做的事情。在实际中,我首先加载一些HTML,用Nokogiri解析它,等等。
我在终端上用"ruby script.rb“运行这个脚本--什么都没有--真的什么都没发生。
你知道怎么解决这个问题吗?
谢谢allot克里斯
发布于 2011-08-10 02:10:04
您的脚本将立即退出,因为您不需要等待线程完成。
考虑一下this section of the Pickaxe的第一个例子--你需要join你的线程,以便真正的等待所有线程完成它们的工作。
所以你应该试试这个:
def load(i)
...
end
threads = []
for i in 1..1000 do
threads << Thread.new { load(i) }
end
threads.each { |t| t.join }https://stackoverflow.com/questions/7000709
复制相似问题