【发布时间】:2014-10-26 00:11:58
【问题描述】:
整个线程/纤维/进程的事情让我有点困惑。我有一个实际问题可以通过一些并发来解决,所以我认为这是一个向专业人士和比我知识渊博的人询问的好机会。
我有一个很长的数组,比如说 3,000 个项目。我想为数组中的每个项目发送一个 HTTP 请求。
实际上遍历数组,生成请求并发送它们是非常迅速的。需要时间的是等待我要发送的一方接收、处理和确认每件物品。我实际上是在发送 100 个字节,等待 2 秒,发送 100 个字节,等待 2 秒。
我想做的是异步发送这些请求。我想发送一个请求,指定收到响应时要做什么,同时发送下一个请求。
据我所知,我可以在这里使用四个并发选项。
- 线程。
- 纤维。
- 进程;据我所知,这是不合适的,因为访问同一个数组的多个进程不可行/不安全。
- 异步功能,如 JavaScript 的
XMLHttpRequest。
最简单的似乎是最后一个。但是使用 Ruby 最好、最简单的方法是什么?
第 4 项失败,剩下的三个中的哪一个是最明智的选择?
这些选项中的任何一个是否也允许我说“任何时候待处理的请求不超过 10 个”?
【问题讨论】:
-
这个问题对于 Stack Overflow 来说不够务实。但是,像这样的设计问题可能非常适合 Programmers SE。您可能想标记自己的帖子以进行迁移。
标签: ruby