- 虚假唤醒:同一个对象锁,不同的线程需要的条件不一样(例如a线程需要等待送烟的到了才能开始工作,没到就wait,b线程需要等到外卖到了才能开始工作,没到就wait)这时,送外卖的或者送烟的,送到后,会notify但是,notify的特点是随机叫醒wait的其中一个线程,这就会出现叫错的情况,这就是虚假唤醒
- 解决方法,送外卖的或者送烟的,使用nofityAll,然后每个等待的线程使用while循环,没次被叫醒,要再判断一次是否是送给自己的不是则继续wait
Java多线程并发,有关wait和notify的虚假唤醒⚠️注意点和解决方法
最新推荐文章于 2022-07-17 16:34:41 发布