1、Input和Output里边的flag是一个吗?
答:是的,确实是同一个flag,因为两个线程都是操作同一个资源。
2、if(r.flag)是什么意思?
答:判断r.flag是不是true,是的话就可以进去if代码块里执行。
3、是不是代表flag是true?
答:代表的是是否输入了资源以及是否输出了资源,如果是false的话,说明还没有输入,所以wait,让output线程来输出,等到输出了,就让flag=true,并且output线程wait,把input唤醒(notify)来判断flag是不是true来进行输入资源。
4、可是我感觉默认的flag值是false啊!真心搞不懂,还请那位大神详细指点指点,我感激不尽
答:flag在同步代码块的最下面是变化的,不断在切换false和true。 |