Nicolas Delsaux wrote:
Plus compliqué, effectivement, mais pas impossible. Voici une façon de faire
:

a) créer une classe de gestion de tes thread (ThreadManager). Elle aussi est
un thread.
b) dans ThreadManager gérer un compteur d'instances de MyThreadClass
c) lorsque qu'un MyThreadClass commence sa méthode run il incrémente le
compteur de ThreadManager
d) lorqu'il sort de sa méthode run, il décrémente le compteur.
e) lorsque le compteur de ThreadManager est à zéro, poursuivre ton
application.

En fait, pourquoi ThreadManager est elle-même un Thread ? Parce qu'elle doit
tester en boucle la valeur de son compteur !

    
Je ne suis pas ultra au fait des applications multi-threadées, et de toutes les subtilités gérant les synchronisations, mais il me semble que cette classe peut très bien dormir et être notifiée à la fermeture de chaque thread (join) pour décrémenter son compteur, plutôt que de tourner en permanence.

  
Un peu comme nicolas,
je me demande si une simple boucle du genre

for(tableau de thread)
{
tableaudethread[i].join();
}
ne te suffit pas car ton appli doit attendre la fin de tous les threads

Répondre à