English 中文(简体)
在Ruby中使用多进程工作
原标题:
  • 时间:2009-04-02 17:35:30
  •  标签:

有没有一个Ruby模块可以轻松地在多个进程之间共享对象? 我正在寻找类似于Python的multiprocessing模块的东西,它支持可以在进程之间共享的进程安全队列和管道。

最佳回答

将提供简单进程通讯的DRb与线程安全队列Queue或SizedQueue相结合,应该可以满足您的需求。

你也可能想要查看托管在Github上的beanstalkd,链接为http://github.com/kr/beanstalkd/tree/master,你可以在这里找到。

问题回答

我认为你可以利用Ruby IO的设施做很多想要做的事情;你是在进程之间进行共享,而不是线程,对吗?

如果是这样的话,IO.pipe将会做到你需要的事情。据我所知,Ruby没有内置处理跨进程队列的方式,但如果你在Unix上,你也可以使用FIFO(先进先出)。

如果您想要更细致、具有良好线程支持的东西,我相信您可以在使用JRuby时与java.util.concurrent搭配。MRI具有相当糟糕的线程/并发支持,因此如果这是您的目标,JRuby可能是更好的选择。

我碰巧遇到这个图书馆,但我还没有尝试过它。

Parallel::ForkManager — 一个简单的并行处理分叉管理器。

http://parallelforkmgr.rubyforge.org/ 的中文翻译为:http://parallelforkmgr.rubyforge.org/





相关问题
热门标签