在多处理环境中调用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)]))
答案 0 :(得分:1)
看到多处理为池中的每个工作者实例生成新的python实例,并且它们不共享公共资源 - 包括R进程的实例, - 它可能是线程安全的。最好的方法是测试并查看。
答案 1 :(得分:0)
我使用多处理和rpy2没有问题。不能和rpy(v1)说话,但它很有效,它会起作用。