kyokosan
Messages postés41Date d'inscriptiondimanche 28 octobre 2007StatutMembreDernière intervention10 avril 2008
-
21 févr. 2008 à 22:04
uhrand
Messages postés491Date d'inscriptionsamedi 20 mai 2006StatutMembreDernière intervention15 juillet 2012
-
25 févr. 2008 à 11:53
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:
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();}//l'erreur a ce niveau
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
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
A voir également:
Current thread is not owner
Java.lang.illegalmonitorstateexception: current thread is not owner - Meilleures réponses
Java current thread is not owner - Meilleures réponses
static int deb;
static int fin = -1;
/*file_globale est un vecteur de type Requete (thread)
et c'est dans cette file que je veux bloquer les requêtes*/
static Requete[] file_globale = new Requete[10];
}