It’s instructive to compare these 2. See P71 [[Java Threads]].
During sleep(), the sleeping thread doesn’t release lock. In fact, sleep() is a static method with no object mentioned.
I think *inside* the myObj.wait() JVM takes the lock off the current thread. Immediately before/after wait(), current thread must possess the lock on myObj. thread blocks until this happens.
right after we enter myObj.wait() and right before we exit myObj.wait().