Sortie de boucle inexpliquée

Résolu
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -  
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
j'ai un certain nombre de calculs/taches à effectuer, et je ne voudrais pas en lancer plus d'un certain nombre de manière simultanée. Je fait donc une liste de thread que je remplis et vide au fur et à mesure. Mes tests sont stockés dans la liste "castests"
for castest in castests :
  while len(threads)>=num_proc:
    sleep(10)
    for thread in threads:
      if not thread.isAlive():
          threads.remove(thread)
  thread=thread_depuis(castest)
  threads.append(thread)
  thread.start()

donc normalement, je ne devrais pas avoir plus de num_proc thread en simultané, je crée un nouveau thread dès qu'un est mort.
Seulement, ça ne fonctionne pas, je ne sais pas pourquoi, le while n'est pas pris en compte, tout les thread sont créé et lancer en même temps.

A voir également:

2 réponses

fromagedebikette Messages postés 865 Date d'inscription   Statut Membre Dernière intervention   189
 
La condition while len(threads)>=num_proc: ne serait-elle pas inversée ?
ça serait pas plutôt while len(threads)<=num_proc ?

0
Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Après des jours de recherche et de print j'ai trouvé. Je ne sais pas trop pourquoi, mais num_proc est traité comme un string et non comme un entier.
Du coup, la comparaison est toujours fausse ! C'est pour ça que j'aime les langages à typage fort !
0