关于flag问题
flag初始为false,表示池中还没有数据
为什么不是这样写?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | set方法 if (!flag){ //如果true,表示有数据,等待 try { wait(); }cath(...){...} } //否则生产 this .n=n; flag= true ; //生产完毕,置为true get方法 if (flag){ //如果false,表示没有数据,等待 try { wait() } catch (...){...} } //否则,取出数据 System... flag= false ; //已取出,置为false return n; |
10
收起
正在回答
1回答
set()方法是用来生产数据的,if(flag)代表的是有数据,有数据就不生产了,只有当get()方法执行完把数据获取完,才能再生产所以需要wait()。get()方法是获取数据,所以不能是if(!flag),这个表示的是有数据,有数据就不能wait()了,应该是没有数据的时候wait()。
Android零基础入门2018版
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7235 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧