まだPythonの初心者です。わからない、なぜ私は5 2S引数を渡すときに、Pythonマルチプロセッシングプールasync_applyコールバックが機能しない
from multiprocessing import Pool
results = []
def func(a=1):
if a == 1:
return 1
return 2
def collect_results(result):
results.append(result)
if __name__=="__main__":
poolObjects = []
pool = Pool(processes=2)
poolObjects = [pool.apply_async(func, args=(2), callback=collect_results) for i in range(5)]
pool.close()
pool.join()
print results
を含む配列を期待していしかし、私はこの
poolObjects = [pool.apply_async(func, callback=collect_results) for i in range(5)]
にpoolObjectsラインを変更したときにそれが正常に動作しての配列を出力したときに、これは空の配列を出力します5つの1私はここで間違って何をしていますか?
は(= '引数を変更しよう2) 'を' args =(2、) 'に置き換えます(コンマに注意してください)。 '(2)'はちょうど '2'と同じです。*コンマはタプル*を作成します! – Bakuriu