아직 파이썬에서 초보자입니다. 확실하지 이것은 내가 다섯 2S인수를 전달할 때 파이썬 다중 처리 풀 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 초. 여기서 내가 뭘 잘못하고 있니?
시도가'인수에 =을 변경 (2)'를'args = (2,)'(쉼표에 유의하십시오). '(2)'는 정확하게'2'와 똑같습니다. * 쉼표는 튜플을 만듭니다 *! – Bakuriu