本文旨在作学习记录,内容源自JavaGuide,作者在此基础上进行补充说明、整理论述,使其能以一种更为逻辑地清晰地方式表达出“请你说一下sleep方法和wait方法的区别”的理解,更多适应于java面试回答,亦可作对多线程中关于两者的简要了解。
共同点: 两者都可以暂停线程的执行。
区别点:
①.(最重要区别)sleep() 方法没有释放锁,而 wait() 方法释放了锁
②.wait()通常被用于线程间交互/通信,sleep() 通常被用于暂停执行
③. wait() 方法被调用后,线程不会自动苏醒,需要别的线程调用同一个对象上的notify() 或者 notifyAll() 方法。sleep() 方法执行完成后,线程会自动苏醒。或者可以使用 wait(long timeout) 超时后线程会自动苏醒。



