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) 

にはどうすれば労働者の1がg1.compute()および他のg2.computeを間に合わせますか()?あなたが与えられた引数で計算メソッドを呼び出すワーカー関数を定義する必要がありますpython2.7で

答えて

0

、あなたはpool.map()でそれを使用することができますのpython3で

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

(3.5でテスト)それはです代わりにpool.map(SomeClass.comute, [g1, g2])を使用することができます。なぜなら、picklingインスタンスメソッドがサポートされているからです。

+0

ありがとうございました。 – Chicony

関連する問題