最近突然听到了虚假唤醒这个名词,查了下!
虚假唤醒的原贴:
https://blog.csdn.net/horacen/article/details/124233675
原作者不要喷我!
虚假唤醒说白了是什么问题?
是多生产者多消费者,在notifyAll场景下由于if编码(if是顺序向下执行)+并发执行(wait阻塞)引起的,
消费者端是if场景下,生产消费线程启动,生产,消费者是阻塞在await的!
第一步生产者生产 ,notifyAll唤醒消费者,
第二步其中一个消费者正常消费
第三步,一个消费者抢到执行权,由于之前阻塞在await处,是if顺序执行就不在执行了.
后面消费者同上
哪里有什么虚假唤醒,仅仅是if是顺序执行导致的唤醒后管不住了,扯犊子名词