首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >同时下载多个文件(多线程)

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

Stack Overflow用户
提问于 2011-08-10 02:05:28
回答 1查看 1.7K关注 0票数 4

我试图在ruby中使用多线程来同时处理大量的网络连接,但我真的停留在基础上了。

我试过这个:

代码语言:javascript
复制
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克里斯

EN

Stack Overflow用户

发布于 2011-08-10 02:10:04

您的脚本将立即退出,因为您不需要等待线程完成。

考虑一下this section of the Pickaxe的第一个例子--你需要join你的线程,以便真正的等待所有线程完成它们的工作。

所以你应该试试这个:

代码语言:javascript
复制
def load(i)
  ...
end

threads = []

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

threads.each { |t| t.join }
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7000709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档