Ma potete spiegarmi perchè poi non si risvegliano con la notifyAll.

Io avvio i client (il primo è giocatore BIANCO e fa il wait, poi il GIALLO e fa wait() e infine il NERO che dovrebbe riavegliarli ma non lo fa).
Cosa sbaglio??

Questo è il codice del ServerThread:
codice:
public synchronized void controlloInizio() throws InterruptedException, IOException{
		if(giocatore.equals(Giocatore.NERO)){
			partitaIniziata();
			notifyAll();
			out.println("sveglio tutti  ");
			out.flush();
		}
		else{		
		wait();
		out.println("sveglio  ");
		out.flush();
		}
	}

public synchronized void run() {
		
		in = new Scanner(socket.getInputStream());
		out = new PrintWriter(socket.getOutputStream());
		out.println("Giocatore " + giocatore + " connesso  ");
		out.flush();
		controlloInizio();
}