Noch etwas Anfänger in Python. Nicht sicher, warum dies druckt ein leeres Array, wenn ich ein Array erwarte mit fünf 2sPython Multiprozessing-Pool async_apply Callback funktioniert nicht, wenn Argumente übergeben
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
Aber wenn ich ändern, um die poolObjects Linie auf diese
poolObjects = [pool.apply_async(func, callback=collect_results) for i in range(5)]
Es funktioniert gut, und druckt eine Reihe von fünf 1s. Was mache ich hier falsch?
Try 'args = zu ändern (2) 'zu' args = (2,) '(notieren Sie das Komma). '(2)' ist genau das gleiche wie nur '2', * das Komma erzeugt Tupel *! – Bakuriu