0
クラスメソッドにマルチプロセッシングを使用したいと思います。このanswerからPool
のmultiprocessing
はクラスメソッドを直接pickleできないことがわかりましたが、クラス外の関数を定義することでその回避策があり、その関数に追加の引数を追加しました(同様の提案もこのblogにあります) 。そこで、私はMyClass
の並列プログラムを使って、これを実現しようとしました。fun
と並行しています。しかし、結果は得られません(バグはありません)。私は何かが欠けているようですが、私はほとんどそこにいると感じています!すべての修正は本当に感謝しています。クラスメソッドのマルチプロセッシング
import multiprocessing
class MyClass:
def __init__(self):
pass
def fun(self, myList):
print myList
def unwrap_fun(obj, myList):
return obj.fun(myList)
obj = MyClass()
mlp = multiprocessing.Pool(processes=multiprocessing.cpu_count())
mlp.imap_unordered(unwrap_fun, (obj, range(1, 10)))
ありがとうございます。 – Medo