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

相關問題