Porque o monitor não dá deadlock

Eu tenho o seguinte codigo:

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

e este em outro metodo:

synchronized(time)
{
   time.notify();
}

se eu chamei o wait no bloco synchronized, porque eu consigo chamar o seu notify se a thread parou de executar ainda dentro do synchronized??

Chute: sera que eh por que quando a thread faz wait() ela larga os locks?

Marcio Kuchma

Direto do javadoc da classe:

Porque é assim, eu não sei.