Tag: 虚假唤醒

虚假的唤醒真的发生了吗?

看到各种与locking有关的问题和(几乎)总是find“虚假唤醒”术语的循环1我想知道,有没有人经历过这种唤醒(假设一个像样的硬件/软件环境)? 我知道“虚假”一词的含义没有明显的原因,但是这种事件的原因是什么呢? ( 1注:我不是在质疑循环练习。) 编辑:帮手问题(对于喜欢代码示例的人): 如果我有以下程序,我运行它: public class Spurious { public static void main(String[] args) { Lock lock = new ReentrantLock(); Condition cond = lock.newCondition(); lock.lock(); try { try { cond.await(); System.out.println("Spurious wakeup!"); } catch (InterruptedException ex) { System.out.println("Just a regular interrupt."); } } finally { lock.unlock(); } } } 我可以做些什么来唤醒这个await ,而不会永远等待随机事件呢?