Thread.sleep不会改变锁的行为,如果当前线程拥有锁,那么当前线程sleep之后,该锁不会被释放。

Thread.sleep和Object.wait都会暂停当前的线程,让出cpu。Thread.sleep时间到了之后,线程可以被重新调度,但是线程被Object.wait暂停执行之后,必须要其它的线程notify或者notify_all唤醒。

Object.wait需要在获取了该对象的monitor之后才能调用,否则会抛出异常,而Thread.sleep不需要。