#每天一个知识点# sleep VS wait
sleep() 方法和 wait() 方法都可以让线程暂停执行,但它们的作用和使用方式有所不同。

共同点:
都可以让线程暂停执行,释放 CPU 资源。
在使用时,都需要捕获 InterruptedException 异常。

区别:
wait() 方法是 Object 类的方法,而 sleep() 方法是 Thread 类的方法。
wait() 方法需要在 synchronized 块内部调用,而 sleep() 方法可以在任何地方调用。
wait() 方法会释放对象的锁,而 sleep() 方法不会释放任何锁。
wait() 方法需要使用 notify() 或 notifyAll() 方法来唤醒等待的线程,而 sleep() 方法则会自动唤醒。
wait() 方法会把线程放到等待队列中,直到被唤醒,而 sleep() 方法会让线程进入 TIMED_WAITING 状态,等待指定的时间后自动唤醒。
展开
评论