正在回答 回答被采纳积分+1
3回答
好帮手慕小尤
2020-08-19 18:26:37
同学你好,1. 在代码中使用到了wait()方法,而此方法是中断方法的执行,使线程等待。
2. 同学提供的代码思路如下所示:
当flag为false,getN()方法中,if(!flag)为true,消费的线程执行wait()方法,处于等待的状态。setN()方法中,if(flag)为false,不执行if条件,向下执行,输出生产XX,并设置flag = true;调用notify()方法(或notifyAll()方法),唤醒线程。
再执行getN()方法,此时的flag为true,if(!flag)为false,不执行if条件,向下执行,输出消费XX,再设置flag 为false,以此循环。
从而实现线程同步。
3. 线程同步是通过synchronized()来实现的,在实现同步机制时,wait()与notify()需要与synchronized()一起使用,实现同步的效果!
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
java工程师2020版
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星