3 votes

Python Multiprocessing : AssertionError : can only join a started process error lorsque plusieurs processus sont lancés en boucle

J'ai créé plusieurs processus en utilisant la boucle for et j'ai ajouté chaque processus dans un tableau après l'avoir lancé.

for param in multiples_100:
    p = Process(target=calculate, args=(param,))
    processes.append(p)
    p.start()
p = Process(target=calculate, args=(200,))
processes.append(p)
for p in processes:
    p.join()

quand j'essaie de joindre tous les processus, il jette AssertionError: can only join a started process

2voto

Hannu Points 5210

Vous ne commencez pas le processus final en dehors de la boucle.

for param in multiples_100:
    p = Process(target=calculate, args=(param,))
    processes.append(p)
    p.start()
p = Process(target=calculate, args=(200,))
p.start()
processes.append(p)
for p in processes:
    p.join()

devrait le réparer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X