12.3.4 等待状态(Waiting)

更新于 2026年10月10日 版权声明
12.3.4 等待状态(Waiting)

当处于运行状态的线程让出CPU使用权并暂时停止自己的运行时,会进入等待状态(Waiting)。以下方法可以让线程进入等待状态:

Object.wait()方法;

Thread.join()方法。(https://www.daowen.com)

以上两种方法都没有timeout参数。当线程进入等待状态之后,会一直等待到另一个线程执行完特定方法为止。如某个线程对象调用了Object.wait()方法,则会一直等待到另一个线程调用该对象上的Object.notify()方法或Object.notifyAll()方法;而调用了Thread.join()方法的线程,则会一直等待到另一个线程指定线程终止。

提示:

因Object.wait()方法进入等待状态的线程被其他线程唤醒之后,如果想进入同步代码块或同步方法,也会因为获取对象上的锁而重新进入Blocked状态。也就是说,被wait()方法造成等待的线程,会释放已经获得的对象锁,被唤醒之后需要重新获取对象锁。

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)