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