When a thread is waiting as a result of wait(), it release its lock.
posted 9 years ago
Yes, wait() causes the thread that calls it to give up its lock.
Otherwise a notify() could never be called, as notify can only be called in a synchronized block or method. And the thread that calls notify() must have the lock on that object. If it were the case, that wait() kept its lock, no other thread could ever get it.