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 :

[Thread] petit problème au niveau du reveil d'un thread


Sujet :

Concurrence et multi-thread Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 148
    Points : 55
    Points
    55
    Par défaut [Thread] petit problème au niveau du reveil d'un thread
    Saalut c enecore moi et mon projet bidon de gestionnaire de rond point
    En fait j'utilise une semaphore pour gérér la ressource ki est le rond point.
    a un moment je mets un wait comme ce ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    while(s.get_val()!=4)
    		{
    			//try {
    				//System.out.println("Camion en attente...");
    				//s.set_c_att(true);
    				//wait();
    			//} catch (InterruptedException e) {
    				// TODO Auto-generated catch block
    			//	e.printStackTrace();
    			//}
    s etant une semaphore.
    le probleme quand je le reveil en utilisant la méthode V() de la semaphore ben lui il prefere dormir...

    Merci.

  2. #2
    Membre habitué Avatar de Oui-Oui MB
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2005
    Messages : 111
    Points : 127
    Points
    127
    Par défaut
    Il te faudrait un notify() là ou tu veux réveiller ton thread car il est bloqué sur le wait()...

    En gros, quelque part tu auras un s.set_val(4) (ou autre chose pour changer la valeur de ton sémaphore) et puis il faut que tu fasses un notify quand il est à 4. Mais je dois dire que c'est pas tres propre comme ça.
    Que la Schtuche soit avec vous !!!

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 148
    Points : 55
    Points
    55
    Par défaut
    Non je fais un notify() mais en fait comme j'ai deux type de thread je ne sais pas si kan je fait un notifyall sur les voitures ca reveille aussi les camions...apparement non..

    Merci

  4. #4
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Les threads se mettent en attente jusqu'à ce qu'une condition soit remplie.
    On peut avoir 2 threads en attente de deux conditions différentes, et on ne veut pas forcément les réveiller en meme temps.
    Pour ca :
    Thread1 appelle object1.wait(); (dans un bloc synchronized(object1) )
    Thread2 appelle object2.wait(); (dans un bloc synchronized(object2) )

    Thread3 appelle object1.notify(); pour réveiller Thread1.
    Thread3 appelle object2.notify(); pour réveiller Thread2.
    (toujours dans des blocs synchronized).

    notifyall() réveille tous les threads en attente d'une meme condition, c-a-d qui ont appelé wait() sur l'objet que l'on notifie.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

Discussions similaires

  1. Petite question sur la façon de faire une sorte de thread
    Par bit_o dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 09/05/2007, 23h28
  2. Programme à réaliser en C(petit probl)
    Par conceicao dans le forum C
    Réponses: 32
    Dernier message: 24/11/2006, 09h46
  3. [Syntaxe] PETIT probl avec un Jlabel
    Par blackcrow1981 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 14/09/2006, 19h53
  4. [Thread] Petite question sur notify() et wait()
    Par Invité dans le forum Concurrence et multi-thread
    Réponses: 8
    Dernier message: 12/05/2006, 12h13

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