Ruby 同时下载多个文件(多线程)

Ruby 同时下载多个文件(多线程),ruby,multithreading,Ruby,Multithreading,我试图在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 对于1..1000 do中的i Thread.n

我试图在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
对于1..1000 do中的i
Thread.new{load(i)}
结束
def加载(i)
File.open(filePath,“w”)do |输出|
打开(imageURL)进行|输入|

输出您的脚本将立即退出,因为您没有等待线程完成

考虑第一个示例-您需要更新您的线程,以便实际等待所有线程完成其任务

所以你应该试试这个:

def load(i)
  ...
end

threads = []

for i in 1..1000 do
  threads << Thread.new { load(i) }
end

threads.each { |t| t.join }
def加载(i)
...
结束
线程=[]
因为我在1..1000做
您可能感兴趣的线程比较了同时下载多个文件的3种方式。