0
J'utilise Python multitraitement comme ceci:Python multitraitement n'asynchron
pool = mp.Pool(processes=mp.cpu_count())
num_jobs = 5
print("Start Multiprocessing with: " + str(mp.cpu_count()) + " processes and " + str(num_jobs) + " jobs")
for i in range(num_jobs):
start = int(...)
end = int(...)
result = pool.apply_async(worker, args = (parameter1, start, end,), callback = callback_function)
result.get()
result = pool.apply_async(worker2, args = (parameter1, parameter2,), callback = callback_function2)
result.get()
pool.close()
pool.join()
Dans mes fonctions de travail j'imprimer aime STH:
def worker(parameter1, start, end):
for in_idx in range(0,100)
print(in_idx)
Cependant, les travailleurs sont appelés segmentaire plutôt que de manière asynchrone. Quel est le problème ici? Des idées?
vous avez 'result.get' dans la boucle. – mgilson
Est-ce un problème? J'en avais besoin pour des raisons de débogage? Ai-je besoin de le supprimer ou pouvez-vous fournir une solution sans le supprimer? @mgilson – thigi
get() par défaut bloque jusqu'à la fin. – jordanm