1

我有一个包含执行计算的函数的类。如果我有这些对象的几个实例,我该如何使计算并行?如何在Python 2.7中并行调用不同实例的类方法?

class SomeClass: 
    def __init__(self, arg): 
    .... 
    def compute(self): 
    .... 

,然后在不同的脚本:

from multiprocessing import Pool 
from wherever import SomeClass 
    g1 = SomeClass(arg1) 
    g2 = SomeClass(arg2) 
    pool = Pool(processes = 2) 

如何使一个工人做g1.compute()和其他g2.compute()?

回答

0

在python2.7你必须定义调用计算方法在给定的参数工人功能,那么你就可以pool.map()使用它:

def call_compute(o): 
    return o.compute() 
... 
result = pool.map(call_compute, [g1, g2]) 

在python3(上3.5测试)是可能会使用pool.map(SomeClass.comute, [g1, g2]),因为酸洗实例方法在那里受支持。

+0

非常感谢。 – Chicony

相关问题