Anzi, no... manca la condizione di blocco/sblocco nel thread:
codice:
public void run() {
while( run ) { // Io cambierei nome alla variabile
while( !ciSonoDati() ) { // Finchè non ci sono dati, mi metto in wait
synchronized( this ) {
try { wait(); } catch (InterruptedException ie) { ... }
}
}
// Qui arrivo solo quando ci sono dati da lavorare
faiQualcosa();
}
}
Il metodo che io ho chiamato ciSonoDati() in realtà può essere una qualunque espressione che controlla se ci sono dati da lavorare o meno (quindi, se x e y sono stati impostati dalla classe chiamante).
Ciao.