老师,flag的值设为false时,为什么生产时if(flag)

老师,flag的值设为false时,为什么生产时if(flag)

是为true,不是应该调用我们设置的值吗

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
吃吃吃鱼的猫 2019-06-21 16:15:04

同学你好,

flag的值在程序中是动态变化的。

if的判断表达式为true时,才会执行if中的语句。

根据flag的值,判断生产方法中是否执行if判断中的语句。

如:

if(true){
    System.out.println("AAA");
}
if(false){
    System.out.println("BBB");
}

如上所示代码,输出AAA。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

吃吃吃鱼的猫 2019-06-21 11:00:21

同学你好,flag的初始值为false,此时在生产方法中,生产线程不进入if判断,不执行wait方法,只执行生产的代码,最后会将flag设为true。

http://img1.sycdn.imooc.com//climg/5d0c475e0001a1c805000340.jpg

flag为true时,生产线程进入if判断,执行wait方法,生产线程进入等待状态。

消费线程开始读取数据,最后再将flag设为false。

通过改变flag的值,两个线程就这样交替执行“生产-消费”的过程。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 0Lin0 #1
    生产方法中的if(flag)中的flag是true还是false
    2019-06-21 11:23:06
  • 提问者 0Lin0 #2
    生产方法中的if(flag)中的flag是true还是false
    2019-06-21 11:23:07
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师