如何在进程之间共享大类成员变量

时间:2016-06-10 10:04:42

标签: python python-2.7 multiprocessing python-multiprocessing multiprocess

我有一个包含成员变量的类。我想要一些计算同时应用于这个变量。

class A(object):
    def __init__(self):
      self.x = numpy.random.random((1e6,)) # some really large array
    def func(self, t): # a function that is expected to run concurrently
      # some computation that uses self.x
      return 0 # here I just return 0 for simplicity

我以这种方式打电话给这个班级(使用悲情' s multiprocess):

from multiprocess import Pool
a = A()
pool = Pool(16)
results = pool.map(a.func, range(16))

这很慢。我怀疑这是因为大数组被复制到每个进程,而不是被共享。如何在进程之间共享这个大型类成员变量?

P.S。我使用了病毒的multiprocess而不是Python的multiprocessing,因为后者无法挑选实例方法。

0 个答案:

没有答案