Bonjour,
Dans le cadre de mon projet de semestre, je crée un programme python qui engendre 13 processus fils, puis se scinde ne deux threads: l’un qui attends que tous les processus aient finis et l’autre qui récupère leur sortie pour l’écrire sur un fichier.
Pour des soucis de clarté du code, j’ai voulu mettre la cible du thread créé (ne comportant que peu de lignes) dans une fonction anonyme prenant comme unique argument une liste de tous les processus dont il faut attendre la fin.
join_thread = Thread(
target=lambda month_proc: (
[proc.join() for proc in month_proc],
print('all processes finished'),
kill(getpid(), SIGUSR1)),
args=(month_proc),
name='join_thread')
join_thread.start()
Malheureusement, dès que ce thread se lance, je reçoit l’erreur: TypeError: <lambda>() takes 1 positional argument but 13 were given
. Les fonctions anonymes ne supportent-elles pas les listes?
Merci de votre réponse!
+0
-0