Thread.sleep(5000) 和 o.wait(5000) 有何区别? 根本区别:语义不同 sleep: 休眠5秒,保证一定能休眠5秒;wait: 等待通知,最多等五秒,不保证一定能休眠够5秒,一旦被通知了,可以立即醒来。 表象上的区别: sleep调用,不需要持有锁; wait调用,必须持有 o 这个锁; sleep休眠过程不会释放锁; wait休眠过程,会释放锁,但只会释放 o 这个对象锁,其他持有锁不释放。