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 :

question: Synchronisation de threads


Sujet :

Concurrence et multi-thread Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2
    Points : 2
    Points
    2
    Par défaut question: Synchronisation de threads
    voila mon probleme:

    je crée un thread et je l'appelle 2 fois. Si j'ai une section de code critique
    je peux synchroniser cette section. Si le thread 1 exécute cette section, le thread 2 devra attendre pour pouvoir acceder à cette section. Ca c'est clair pour moi.

    maintenant si j'ai 2 threads différents et que j'appelle les 2. J'ai une section critique dans le thread 1. c'est à dire: Si le thread 1 execute cette portion de code, je veux qu'il termine l'éxécution de cette portion avant de redonner la main. Je veux forcer l'éxecution du bout de code complet.

    si j'ai bien compris, synchronised empeche l'acces multiple à une portion de code d'un meme thread lancé plusieurs fois. ici 2 threads différents sont lancés. Comment puis-je faire pour forcer l'éxecution complete d'un morceau de code?

  2. #2
    Membre expérimenté Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Points : 1 608
    Points
    1 608
    Par défaut
    Il suffit d'inclure la portion de code dans un bloc synchronized :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Objet lock = new Object();
     
    ...
    synchronized(lock) {
      // le code à exécuter
    }

  3. #3
    Membre habitué Avatar de nicgando
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 128
    Points : 163
    Points
    163
    Par défaut
    Si j'ai bien compris ton Thread1 doit finir ce qu'il fait avant qu'un autre Thread s'exécute.

    Tu devrait regarder du côté de Thread.join() qui te permet d'attendre la fin du thread sur lequel tu invoques le join().

    bon c'est pas exactement ce que tu veux car tu dois attendre que le thread meurt et il te faut une référence sur le thread à attendre

Discussions similaires

  1. Question sur la synchronisation des threads
    Par zpico dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 22/02/2012, 15h15
  2. Question sur la synchronisation des threads.
    Par sebastieng dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 07/12/2005, 16h55
  3. Réponses: 1
    Dernier message: 23/05/2005, 16h52
  4. Synchronisation de thread
    Par declencher dans le forum Langage
    Réponses: 2
    Dernier message: 07/01/2004, 11h28
  5. Une question à propos des thread
    Par tscoops dans le forum C++Builder
    Réponses: 4
    Dernier message: 07/11/2003, 15h03

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