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

avec Java Discussion :

Threads, wait(), notify(), notifyAll()


Sujet :

avec Java

  1. #21
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 64
    Points : 37
    Points
    37
    Par défaut
    Après avoir lu ton dernier post Logan, je me suis dit bêtement : Je n'ai qu'à appeler notify() deux fois de suite comme ça je met fin au wait() et au join().
    Ça fonctionne, le tri redevient opérationnel mais c'est sale.

    J'utilise aussi tout le temps les Threads en implémentant Runnable mais j'ai tout de même trouvé intéressant d'utiliser une autre façon de faire.

    J'ai repris le tout en version avec implémentation de Runnable et ça fonctionne.
    Tout vient donc du fait d'appeler wait() et notify() sur une instance de Thread car dans mon code j'ai tout laissé tel quel, le synchronized(this), le .join() sur le thread et this.wait() et this.notify().
    wait() et notify() s'appliquent donc sur un Runnable (this est ici notre Runnable) et non plus sur un Thread.
    On peut donc notify() un Runnable d'un Thread sur lequel on a fait un join().
    De plus le bloc synchronized(this) concerne le Runnable et plus une instance de Thread donc ça fonctionne.

    Ai-je tout compris ?

  2. #22
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Exactement
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  3. #23
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 64
    Points : 37
    Points
    37
    Par défaut
    Bonjour,

    Un grand merci à tous les intervenants qui m'ont aidé à comprendre ces subtilités sur la synchronisation des Threads.

    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. communication entre thread (wait notify repaint)
    Par jojo410 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 18/11/2011, 14h08
  2. wait() , notify() et notifyAll()
    Par nolofinwe dans le forum Langage
    Réponses: 5
    Dernier message: 12/04/2010, 10h38
  3. Problème Thread wait / Notify
    Par tiamat dans le forum Concurrence et multi-thread
    Réponses: 17
    Dernier message: 28/05/2009, 12h24
  4. [Thread] Probleme sur wait() / notify()
    Par Jean_pierre dans le forum Concurrence et multi-thread
    Réponses: 4
    Dernier message: 30/11/2008, 09h31
  5. [débutant][Thread] wait et NotifyAll
    Par norkius dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 14/03/2005, 15h28

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