我的理解:虚假唤醒的本质是由于wait()进入阻塞状态的线程被唤醒时,获取锁后的代码块执行条件可能已经不成立(中途释放锁的阶段,该方法可能被其他线程执行,从而改变执行条件),需要使用while()对获取锁的条件进行重复判断
Java 多线程学习:虚拟唤醒
于 2022-01-21 13:12:08 首次发布
我的理解:虚假唤醒的本质是由于wait()进入阻塞状态的线程被唤醒时,获取锁后的代码块执行条件可能已经不成立(中途释放锁的阶段,该方法可能被其他线程执行,从而改变执行条件),需要使用while()对获取锁的条件进行重复判断