RPy的多处理安全吗?

时间:2011-04-18 18:44:38

标签: python multithreading r multiprocessing rpy2

在多处理环境中调用RPy函数是否安全,是否存在人们应该注意的有关RPy的多处理问题?

一个简单的例子如下:

from multiprocessing import Pool
from rpy import *

def f(x):
    return r.mean(x)


if __name__ == '__main__':
    p = Pool(5)
    print sum(p.map(f, [range(1, 1000000), range(2, 2000000), range(3, 3000000)]))

2 个答案:

答案 0 :(得分:1)

看到多处理为池中的每个工作者实例生成新的python实例,并且它们不共享公共资源 - 包括R进程的实例, - 它可能是线程安全的。最好的方法是测试并查看。

答案 1 :(得分:0)

我使用多处理和rpy2没有问题。不能和rpy(v1)说话,但它很有效,它会起作用。