allora alle volte tipo una volta su 4 che testo il mio programma mi da questa IllegalMonitorStateException, vi posto la sezione di codice..



Turnox[f].sem.signal(Turnox[f],S); /*risveglia il giocatore*/



while(this.S==1){
try {
wait();
}

catch (InterruptedException e) {}
}
}
}



public class Semaphore {

Giocatore g;
int S;

public Semaphore(int S){

this.S=S;

}



public void signal(Giocatore gio,int S) {
this.g=gio;
this.S=S;

S--;

if (S==0) {
synchronized(g){
g.notify();/*risveglia il giocatore*/
}
}
}

}