Salve a tutti. Ho difficoltà a capire la programmazione concorrente, mi è venuto questo dubbio:
supponiamo di avere un oggetto con un metodo sync

public class Oggetto {
...
public synchronized void op(){
wait();
}

}

// poi istanzio Oggetto mioOggetto = new Oggetto();
-------------------------

Un Thread che invoca mioOggetto.op() acquisisce il lock sull'oggetto di ti, ora la domanda è: se faccio wait() mi sto bloccando su mioOggetto ma il lock acquisito per essere entrato nel synchronized lo rilascio? Sono due cose indipendenti il mutex di mioOggetto e la coda di attesa per mioOggetto?

grazie in anticipo