0
以下代碼未按預期執行。多處理池不能在嵌套函數中工作
import multiprocessing
lock = multiprocessing.Lock()
def dummy():
def log_results_l1(results):
lock.acquire()
print("Writing results", results)
lock.release()
def mp_execute_instance_l1(cmd):
print(cmd)
return cmd
cmds = [x for x in range(10)]
pool = multiprocessing.Pool(processes=8)
for c in cmds:
pool.apply_async(mp_execute_instance_l1, args=(c,), callback=log_results_l1)
pool.close()
pool.join()
print("done")
dummy()
但是,如果功能沒有嵌套,它確實有效。到底是怎麼回事。
'lock'的類型是什麼? –
對於將來,雖然你的問題從上下文來看是足夠明顯的,但你不能說「它不工作」。您需要提供[MCVE],在這種情況下,將包含發生故障時的錯誤和異常追溯。 – ShadowRanger
是的,謝謝。 – kanna