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