こんにちは私は、マルチプロセッシングを使用して並列に辞書の値を定義しようとしています。関数f()が「プール」の外で呼び出されると、辞書値が正しく設定されます。ただしプールコールでは失敗します。Pythonでのマルチスレッド/処理
私は間違っていますか?ありがとう。
from multiprocessing import Pool
hits={}
def f(x):
hits[x] = x #this will involve a complex operation
f('000')
print hits['000']
if __name__ == '__main__':
pool = Pool(processes=2)
inputs = ['a','b','c']
result = pool.map(f, inputs)
print hits['a']
プロセス間の状態の共有は困難です。おそらく、子プロセスで複雑な操作を実行し、親プロセスでの「ヒット」のグローバルな状態を維持するでしょう。 –