コードをデバッグするのに一晩かかりましたが、ついにこのトリッキーな問題を発見しました。以下のコードを見てください。
from multiprocessing import Pool
def myfunc(x):
return [i for i in range(x)]
pool=Pool()
A=[]
r = pool.map_async(myfunc, (1,2), callback=A.extend)
r.wait()
が得られると思ったのですA=[0,0,1]
が、出力はA=[[0],[0,1]]
です。これは私には意味がA=[]
ありA.extend([0])
ませA.extend([0,1])
んA=[0,0,1]
。おそらく、コールバックは別の方法で機能します。だから私の質問は、A=[0,0,1]
代わりに取得する方法[[0],[0,1]]
です ?