Buonasera,

volevo sapere se, in Java, i due seguenti metodi di sincronizzazione sono DEL TUTTO equivalenti

In un thread, scrivo in una funzione notifyAll(), in un'altra this.wait().

Tutto funziona alla perfezione, nonostante ci siano 3 thread in stato runnable contemporaneamente..

Ora, se cambio le due chiamate con le seguenti linee di codice, tutto cambia e il programma si inceppa clamorosamente

Naturalmente inizializzo nel costruttore l'oggetto methodLock...

synchronized (methodLocks) {
methodLocks.notifyAll();
}



synchronized (methodLocks) {
methodLocks.wait();
}

Allora, o io non conosco qualcosa della sincronizzazione oppure sbaglio qualcosa di semplicissimo.

Chi mi sa dire dove toppo?