sleep()方法和wait()方法存在很多区别,简述一两点很简单,但是要全部讲好要好好记一下才行的。下面简述一下两个方法的主要区别。
1.sleep()方法是在休眠指定的时间后会重新进入可运行状态(Runnable),wait()方法是会进入阻塞状态,需要通过代码如notify(),notifyAll()来将其唤醒才能重新进入可运行状态(Runnable)
2.sleep()方法在休眠时不会放开对象的互斥锁,而wait()方法在阻塞时会放开互斥锁
3.sleep()方法来自Thread类,wait()方法是来自Object类的方法
4.使用范围有不同,sleep()方法可以在任意地方使用,而诸如wait()、notify()、notifyAll()等方法只能用在同步代码块或同步方法里
5.sleep()必须捕获异常,而wait()无需捕获异常
欢迎各位批评指正。
本文详细介绍了Java中Thread.sleep()和Object.wait()两个方法的主要区别,包括它们的状态转换、锁的释放以及使用场景等方面。sleep()方法使线程休眠指定时间后自动恢复运行,不释放锁;而wait()方法则导致线程进入等待状态,需被notify()或notifyAll()唤醒,并会释放对象锁。此外,sleep()在任何地方都可使用,wait()需在同步代码块或方法内使用,并且wait()不需要捕获异常。

948

被折叠的 条评论
为什么被折叠?



