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()
그러나 함수가 중첩되어 있지 않으면 작동합니다. 무슨 일 이니?
'잠금'의 유형은 무엇입니까? –
미래에 대해서는 문제가 문맥에서 충분히 분명해졌지만 "작동하지 않는다"고 말할 수는 없습니다. [MCVE]를 제공해야하며이 경우 실패시 발생하는 오류 및 예외 추적이 포함됩니다. – ShadowRanger
예, 감사합니다. – kanna