Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1888 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] synchro entre thread: wait() et notify() -> pb [RESOLU]

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] synchro entre thread: wait() et notify() -> pb [RESOLU]

n°1269222
trevor
laissez la vie vous étonner...
Posté le 17-12-2005 à 21:53:27  profilanswer
 

salut
 
je tente (désespérement) de synchroniser 2 threads entre eux (l'un doit surveiller que l'autre arrive à terme)
j'essaie d'utiliser wait() et notify(), et que ce soit à l'exécution de l'une ou l'autre de ces méthodes (le wait() dans mon thread de surveillance, et le notify() dans mon thread arrivant à terme), à chaque fois j'ai l'exception "current thread not owner" (IllegalMonitorStateException) qui est levé.
qqun saurait me filer un coup de pouce
 
nb: mon code:

public class Monitor implements Runnable {
  public Monitor() {
    (new Thread(this)).start();
  }
 
  public void run() {
    try {
      wait();
    }
    catch (InterruptedException ie) {System.out.println("Erreur: synchronisation threads" );}
 
    System.out.println("monitor terminé" );
  }
 
}
 
 
public class monThread implements Runnable {
  ...
 
  public monThread(...) {
    ...
    (new Thread(this)).start();
  }
 
  ...
 
  public void run() {
    ...
    notify();
 
    System.out.println("monthread terminé" );
  }
 
}


Message édité par trevor le 17-12-2005 à 22:31:01

---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net
mood
Publicité
Posté le 17-12-2005 à 21:53:27  profilanswer
 

n°1269230
trevor
laissez la vie vous étonner...
Posté le 17-12-2005 à 22:30:07  profilanswer
 

oki c'est bon j'ai trouvé, j'avais déjà essayé la synchronisation sur un objet commun (passé via le constructeur de chaque thread):

public class Monitor implements Runnable {  
  public Monitor(JTextArea jta) {  
    ...  
  }  
 
  ...
}  
 
 
public class monThread implements Runnable {  
  ...  
 
  public monThread(JTextArea jta) {  
    ...  
  }  
 
  ...  
}


 
mais ca me renvoyait exactement la même exception
 
mais en fait il faut faire une exclusion mutuelle sur l'appel de ces méthodes avec synchronized:

public class Monitor implements Runnable {
  ...
  public void run() {
    try {
      synchronized (this.jta) {
        this.jta.wait();
      }
    }
    catch (InterruptedException ie) {System.out.println("Erreur: synchronisation threads" );}
  ...
  }
 
}
 
 
public class monThread implements Runnable {
  ...
 
  public void run() {
    ...
    synchronized (this.jta) {
      this.jta.notify();
    }
  }
  ...
 
}


Message édité par trevor le 17-12-2005 à 22:30:36

---------------
TReVoR - http://dev.arqendra.net - http://info.arqendra.net

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] synchro entre thread: wait() et notify() -> pb [RESOLU]

 

Sujets relatifs
Boutique virtuelle en java en utilisant Struts[Java] maj du défilement d'un jtextarea utilisé par 2 classes
[RESOLU] Une erreur 998 lors d'un CreateProcess()Upload en JAVA
[batch] [résolu] je n'arrive pas a faire une temporisationAlgo - Défilement de texte "doux" [Résolu]
[RESOLU] Problème avec un IF imbriqué dans une boucle FORPb java scrip Help !!!
Java 1.5 & Eclipse 3.1.1visual editor java
Plus de sujets relatifs à : [Java] synchro entre thread: wait() et notify() -> pb [RESOLU]


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR