J'utilise actuellement des fonctions de multi-traitement pour analyser environ 10 fichiers.Le multitraitement Python n'attend pas
Cependant, je veux seulement exécuter 5 processus à chaque fois. Lorsque j'essaie d'implémenter ceci, cela ne fonctionne pas. Plus de processus sont créés puis le nombre que j'ai spécifié. Y at-il un moyen qui limite facilement le nombre de processus à 5? (Windows 7/Python 2.7)
EDIT: J'ai peur que vos solutions ne fonctionnent toujours pas. Je vais essayer d'afficher plus de détails ici;
Fichier python principal;
import python1
import python2
import multiprocessing
# parallel = [fname1, fname2, fname3, fname4, fname5, fname6, fname7, fname8, fname9, fname10]
if name == '__main__':
pool = multiprocessing.Pool(processes=max(len(parallel), 5))
print pool.map(python1.worker, parallel)
Fichier Python1; L'instruction return de 12 fichiers revient avant que tous les modules perl ouverts soient fermés. En outre 12 coquilles perl sont ouvertes au lieu de seulement le maximum de 5. (Image; Vous pouvez voir clairement que les déclarations de retour reviennent avant que les commandes de perl finissent même, et il y a plus de 5 processus http://oi57.tinypic.com/126a8ht.jpg)
Votre méthode n'a pas fonctionné pour moi. J'ai posté plus de détails dans ma question principale. (Peut-être que je devrais avoir mentionné que j'ai importé d'autres fichiers python, excuses pour cela) – user3589561