③. 解决方法
①. 出现虚假唤醒的原因是从阻塞态到就绪态再到运行态没有进行判断,我们只需要让其每次得到操作权时都进行判断就可以了
if(num != 0){ this.wait(); } 改为 while(num != 0){ this.wait(); } if(num == 0){ this.wait(); } 改为 while(num == 0){ this.wait(); }
2023-11-14 13:34:04
①. 出现虚假唤醒的原因是从阻塞态到就绪态再到运行态没有进行判断,我们只需要让其每次得到操作权时都进行判断就可以了
if(num != 0){ this.wait(); } 改为 while(num != 0){ this.wait(); } if(num == 0){ this.wait(); } 改为 while(num == 0){ this.wait(); }