IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Concurrence et multi-thread Java Discussion :

Comment attendre que tous les thread lancés soient morts pour lancer une action.


Sujet :

Concurrence et multi-thread Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 58
    Points : 33
    Points
    33
    Par défaut Comment attendre que tous les thread lancés soient morts pour lancer une action.
    Bonjour,

    J'ai développé une application qui lance pas mal de thread afin d'accélérer le tout.

    A la fin je voudrais imprimer les résultats.

    Ce que j'ai fait.
    Dans la classe contenant "main" , j'ai créé un static ArrayList<Thread>

    A chaque Thread que je crée (sauf l'initial) je l'ajoute à ce ArrayList.

    A la fin de ma fonction "main"
    j'ai créé un boucle while qui boucle tant que mon ArrayList n'est pas vide.
    Et dans cette boucle while.
    Je vérifie chaque Thread et si il est inactif, je l'enlève de la liste.

    Normalment, je devrait donc avoir en tout dernier l'impression des résultats.
    Mais en fait, en tout dernier, j'ai des traces de mes autres Thread.


    Donc y a un truc de faux dans ma réflexion.


    Vous comment feriez vous ca ?

    Le but etant d'attendre que tous les Thread lancés soit morts pour faire une dernière action dans le thread initial.

    Je vous remercie par avance.

  2. #2
    Membre confirmé Avatar de Scorpyosis
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2004
    Messages : 365
    Points : 570
    Points
    570
    Par défaut
    Poste le code ou tu crée tes threads et la façon dont tu vérifies qu'ils sont bien inactif, on pourra te dire ce qui cloche. En gros poste le code qui pose problème quoi
    Les deux principales inventions sorties de Berkeley sont UNIX et le LSD. Difficile de croire à une quelconque coïncidence - Jeremy S. Anderson

    Avant de vouloir qu’un logiciel soit réutilisable, il faudrait d’abord qu’il ait été utilisable - Ralph Johnson

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2006
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 58
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par Scorpyosis
    Poste le code ou tu crée tes threads et la façon dont tu vérifies qu'ils sont bien inactif, on pourra te dire ce qui cloche. En gros poste le code qui pose problème quoi
    Tout d'abord, je te remercie de ta réponse rapide.

    Mais c'est bon, j'ai trouvé mon problème.

    En fait dans la boucle qui parcourait l'arraylist, j'enlevais les thread mort, c'est pas du joli joli de faire ca dans la boucle !

    Donc pour faire propre, j'utilise Thread.activeCount()

    Qui donne le nombre de Thread vivants du groupe.

    Donc quand il en reste plus qu'n, je fais ma dernière action.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XMLUnit] Comment vérifier que tous les éléments d'une séquence sont présents
    Par Fifan31 dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 21/05/2013, 15h30
  2. Réponses: 5
    Dernier message: 18/12/2012, 08h24
  3. [Réglé] Vérifier que TOUS les boutons Radios soient cochés
    Par ingeniomatique dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/06/2009, 19h11
  4. Réponses: 6
    Dernier message: 13/10/2007, 14h16
  5. Réponses: 2
    Dernier message: 31/08/2006, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo