class Queue{
int value;
boolean b=false;
public synchronized void put(int i){
if(!b){
value=i;
b=true;
notify();
try{
wait();
}
catch(Exception e){
e.printStackTrace();
}
}
}
public synchronized int get(){
if(!b){
try{
wait();
}
catch(Exception e){
e.printStackTrace();
}
}
      b=false;
      notify();
return value;
}
}
3个类中的队列类另外2个不用写出来了,具体东西都在这呢,问题是那boolean变量
定义一个boolean b=false;判断队列是否是满的,如果是满的说明数据还没有被消费者获取,问题就是着b,为假的时候是说明是满还是没满??
如果b为假时说明是满的,那下面if(!b)就为真,说明队列里没数据没满的状态,然后value=i;付值这时应该是满的了,可是他又定义为b=true;是什么意思?
然后调用notify方法将现成从等待队列里删除也就是说明put方法里有数了,需要消费者把数拿走,然后调用wait方法等待消费者拿数,我想的没错吧??
请各位尽量帮忙说一下他那算法,实在理解不了了
各位带星星的哥哥也不要嫌弃简单啊,本人菜鸟需要你们才能成张嘎嘎