是否有一个 Ruby 模块可以轻松地在多个进程之间共享对象?我正在寻找类似于 Python 的multiprocessing的东西,它支持可以在进程之间共享的进程安全队列和管道。
4175 次
3 回答
3
我认为您可以使用 Ruby IO 的功能做很多您想做的事情;你在进程之间共享,而不是线程,对吗?
如果是这种情况, IO.pipe 会做你需要的。Ruby 没有任何内置的方式来处理跨进程队列(据我所知),但您也可以使用 FIFO(如果您在 Unix 上)。
如果您想要更细粒度的东西,并且具有良好的线程支持,我相当肯定如果您使用 JRuby,您可以搭载 java.util.concurrent。MRI 具有相当糟糕的线程/并发支持,所以如果这是您的目标,JRuby 可能是一个更好的选择。
于 2009-04-02T18:17:06.873 回答
2
于 2009-04-03T07:53:23.340 回答
1
将 DRb(提供简单的进程间通信)与 Queue 或 SizedQueue(它们都是线程安全的队列)结合起来,应该可以满足您的需求。
您可能还想查看同样托管在github上的beanstalkd
于 2009-04-02T17:40:28.820 回答