Ruby的等价于Python的多处理模块是什么?
问题描述:
为了在Ruby或Python中获得真正的并发性,我需要创建新的进程。 Python使用multiprocessing
模块使得这个非常简单,它可以抽象出所有fork/wait的优点,并让我专注于我的代码。 Ruby有类似的东西吗?现在我打电话Process.fork
和Process.wait
来获得我的并发性,我想要一个更清洁的解决方案。Ruby的等价于Python的多处理模块是什么?
答
我已经使用https://github.com/grosser/parallel,并喜欢它很多。默认情况下,它将#map或#each跨系统中的所有内核。在引擎盖下,它是Process.fork的一个包装,听起来像你要求的东西。
+0
Parallel的唯一问题是它不允许我在分叉之后做任何事情,它总是等待任务完成。 – dknight
不是一个真正的问题的答案,但:红宝石使用本地线程有一段时间了,所以线程实际上是得到一个很好的办法“真正的“并发性。此外,您不必担心共享数据结构等(除了显而易见的线程安全外) –
您是否已经浏览了此[一] [1]? [1]:http://stackoverflow.com/questions/855805/please-introduce-a-multi-processing-library-in-perl-or-ruby – Bourne
@Niklas:我坚持用Ruby 1.8正在工作:( –