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 :

java.lang.IllegalMonitorStateException: current thread not owner


Sujet :

Java

  1. #1
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut java.lang.IllegalMonitorStateException: current thread not owner
    salut
    j'ai un problème de thread quand je compile j'ai ce message d'erreur

    java.lang.IllegalMonitorStateException: current thread not owner
    at java.lang.Object.wait(Native Method)

    Voici la partie qui me cause problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    public class Requete extends Thread {
    void run()
    .
    .
    .
    .
    .
     
                  Dialog1.fin+=1;
                 Dialog1.file_globale[Dialog1.fin]=this;
                 synchronized( Dialog1.file_globale[Dialog1.fin]){
                   try{Dialog1.file_globale[Dialog1.fin].wait();}
                   catch(InterruptedException ex4){}
                 }
    .............}
     
    public classe Agent{
    ....... while(Dialog1.fin>=Dialog1.deb){ //la file n'est pas vide
     
       synchronized(Dialog1.file_globale[Dialog1.deb]){
                           Dialog1.file_globale[Dialog1.deb].notify();
                           Dialog1.deb+=1;
                  }
              }
                Dialog1.deb=0;//reinitialiser la file globale des requetes
            Dialog1.fin=-1;}
    file_globale est un vecteur de type Requete (thread) et c'est dans cette file que je veux bloquer les requêtes

    le lancement de ce Thread se fait par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     public class lancer(){Requete requ=new Requete[nb_req].........
     
    for (int n = 0; n < nb_req; n++) {
        requ[n].start();}...............................}
    l'erreur se trouve au niveau de l'instruction : try{file_globale[fin].wait();}

    pourriez vous m'expliquer la raison de cette erreur
    merci beaucoup

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    L'erreur est à l'exécution, pas à la compilation.
    C'est un problème se synchronisation. Je pense que tu devrais mettre en synchronized toute la méthode run, directement dans la signature.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut MERCI
    Salut ! Ta réponse est juste parfaite, je sais que je déterre le sujet, mais je voulais te remercier, car personne d'autre ne l'a fait, et qu'on pourrait croire que ta réponse est erronée !

    Camusensei < Les gens bien, il faut les chérir ! >

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/05/2010, 21h20
  2. java.lang.NullPointerException: Module 'null' not found
    Par yacine.dev dans le forum Struts 1
    Réponses: 1
    Dernier message: 26/02/2010, 10h26
  3. current thread not owner
    Par Invité dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 24/11/2009, 20h28
  4. Exception Wait java.lang.IllegalMonitorStateException
    Par darkgenesis dans le forum Java ME
    Réponses: 1
    Dernier message: 27/10/2008, 14h13
  5. java.lang.IllegalMonitorStateException + CountDownLatch
    Par freakfm dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 07/08/2007, 18h50

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