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

 Java Discussion :

Threads et ProgressBar


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Par défaut Threads et ProgressBar
    Bonjour,

    J'ai une petite question d'implémentation.
    J'ai des threads dans une collection qui font un calcul quelconque.

    Depuis mon UI, je les lance et je lance un thread supplémentaire qui va s'occuper d'afficher la progressbar.

    Jusqu'à présent, je n'utilisais pas de progressbar mais simplement un sablier. Et le thread parcourait la collection de threads pour faire join().

    Ma question est la suivante: est-il possible d'attendre la fin d'un thread contenu dans une collection de façon plus "evenementielle", c'est à dire, ne pas devoir parcourir la collection mais simplement laisser un thread terminer et incrementer un compteur.

    Je pense que c'est cette solution à adopter pour une progressbar.

    Avez-vous des idées ?

    Merci.

  2. #2
    Membre émérite Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Par défaut
    Si tu veux passer par des compteurs, je te conseille de faire attention au problème d'exclusion mutuelle.

    Je te conseille d'aller voici ici, le sujet de la syncrhonisation y est expliqué.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 64
    Par défaut
    Citation Envoyé par benratti Voir le message
    Si tu veux passer par des compteurs, je te conseille de faire attention au problème d'exclusion mutuelle.

    Je te conseille d'aller voici ici, le sujet de la syncrhonisation y est expliqué.
    Merci de ta réponse.
    Non ici le compteur est mise à jour que par un seul thread. Ce compteur permet juste de compter le nombre de thread-objet de la collection qui ont terminé. Une fois compteur=collection.size(), je sais que j'ai terminé.

    Et grâce au compteur, je serais capable de faire progresser la progressbar.
    Seulement faire un t.join() est bloquant et si ça se trouve il y a un autre qui a fini avant t.

    Je ne sais pas si je suis très clair.

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Au lieu d'avoir un Thread qui fait du join, tu pourrais parfaitement donner à tes Threads fils une référence sur la ProgressBar ou son contrôleur pour qu'ils incrémentent eux même la valeur à la fin de leur exécution (et penser à avoir une implémentation Abstraite de cette classe s'occupant de notifier à la progress bar qu'elle doit s'incrémenter.
    Ton Thread suppplémentaire avec un join c'est pas loin d'être de l'overkill...


    Sinon une solution plus événementielle serait d'utiliser le mécanisme de ListenableFuture disponible dans la lib guava de google. http://guava-libraries.googlecode.co...bleFuture.html

Discussions similaires

  1. [PERL/TK] Thread et ProgressBar
    Par remix55 dans le forum Interfaces Graphiques
    Réponses: 19
    Dernier message: 31/08/2010, 18h40
  2. Problème Thread et progressbar
    Par AnsuzPeorth dans le forum GTK+ avec Python
    Réponses: 2
    Dernier message: 19/03/2010, 12h56
  3. thread et progressBar sous Visual C++
    Par goingoin dans le forum VC++ .NET
    Réponses: 5
    Dernier message: 19/03/2009, 16h59
  4. Thread et ProgressBar
    Par Jidewe dans le forum VB.NET
    Réponses: 3
    Dernier message: 27/05/2008, 10h04
  5. Background Thread et ProgressBar
    Par bgcode dans le forum VB.NET
    Réponses: 17
    Dernier message: 05/07/2007, 13h30

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