Java中的虚假唤醒真的发生了吗?
看到各种锁定相关的问题和(几乎)总是找到'循环因为虚假的唤醒'术语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
如果不等待随机事件,我该怎样做才能虚假地唤醒它?
慕无忌1623718
相关分类