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*/
}
}
}
}