Duvida sobre Threads e a Classe Condition

estou com uma Duvida sobre sincronização e a classe Condition, por exemplo com eu tenho um variavel do tipo

Condition canRead = accessLock.newCondition();

e em determinada parte do codigo eu tenho

canRead.wait();

a tread que chamou o metodo que contem o trecho de codigo acima que é marcada para ficar esperando não é mesmo?
e quando no metodo que contem o codigo acima eu tenho uma chamada do tipo

canRead.signal();

a thread que chamou o metodo contendo o codigo acima é sinalizada a sair da espera, é assim mesmo?
canRead.wait() opera sobre a thread atual que chamou o metodo e canRead.signal() para todas as thread que já chamaram o metodo e foram marcadas para ficar em espera, é isso?