J'ai essayé toutes sortes de solutions au problème suivant; en vain.Création de threads pilotée par événement
J'ai un grand nombre de modules/scripts (python) et un script distingué, K.py. Lorsque K.py est exécuté, il génère des informations, par exemple un nom de pays. Maintenant, parmi les autres modules (des centaines) il y aura des modules qui peuvent être exécutés avec l'information (le nom du pays, pour cet exemple) généré par K.py qui leur est passé en entrée. Récursivement, chacun des modules ci-dessus va générer des informations (noms de villes, numéros de rue, etc.), qui peuvent servir d'entrée pour d'autres modules, etc. Cela va bien sûr aboutir à l'exécution d'un arbre binaire de scripts.
Points à noter.
- les modules/scripts (des centaines) ci-dessus peuvent fonctionner indépendamment (ils ne sont pas entre dépendent de quelque manière que ce soit)
je devrais être en mesure de mettre un verdict lorsque tous les modules ont terminé l'exécution (c'est l'exécution de K.py doit se bloquer jusqu'à ce que l'arbre binaire déclenché des modules d'exécution soit "joint"). Si, pour chaque information I, et le script exécutable S (c'est-à-dire, S peut fonctionner avec I comme entrée), je décide de créer un nouveau thread, je pourrais finir avec un nombre exponentiel de threads (Non ?)
Comment puis-je utiliser des threads python (l'une des API) pour implémenter «en toute sécurité» une solution? (pseudo_code?)
Merci d'avance pour votre sagesse.
Merci Voo. J'essaie le package multi-traitement. (Je pense à d'autres façons de représenter le «travail», comme dit le Pool (..) doit décaper, etc.). Merci beaucoup. – dop
Je ne suis pas sûr de ce que vous voulez dire avec le Pool put() (ne voyez pas une telle méthode?) Et le décapage. Personnellement, je créerais simplement une boucle while qui supprime le premier élément de la file d'attente et le traite. Si la file d'attente est vide, tous les threads reviennent et nous avons terminé. Vous démarrez le processus en créant la file d'attente, en y insérant le ou les premiers travaux, puis en utilisant le pool. – Voo