首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

急帮忙看下这题,究竟哪种正确?

2011-12-05 
急,急,帮忙看下这题,到底哪种正确??[code]publicclassFlags2{privatebooleanisReadyfalsepublicsynchron

急,急,帮忙看下这题,到底哪种正确??
[code]public   class   Flags2   {
    private   boolean   isReady   =   false;
    public   synchronized   void   produce()   {
        isReady   =   true;
        notifyAll();
    }
    public   synchronized   void   consume()   {
        while(!isReady)   {
          try   {
                wait();
              }catch(Exception   ex)   {}
        }
        isReay   =   true;
    }
}[/code]

[code]public   class   Flags2   {
    private   boolean   isReady   =   false;
    public   synchronized   void   produce()   {
        isReady   =   true;
        notifyAll();
    }
    public   synchronized   void   consume()   {
        while(!isReady)   {
          try   {
                wait();
              }catch(Exception   ex)   {}
        }
        isReay   =   false;
    }
}[/code]

两段代码,最后一句   isReady   =   true;   或者   isReady   =   false;都可以编译,那么到底应该是isReady   =   ture还是isReady   =   false呢??为什么?

[解决办法]
看你想干啥啊
[解决办法]
我感觉是ture,多线程方面的问题吧.
while(!isReady)就是要!isReady 为真,则isReady 为假,才进入循环,isReay = true;退出循环
[解决办法]

false
producer and consumer
[code]public class Flags2 {
private boolean isReady = false;
public synchronized void produce() {
isReady = true; //生产者产生食物
notifyAll(); //通知消费者消耗食物
}
public synchronized void consume() {
while(!isReady) { //食物不存在
try {
wait(); //消费者等待食物产生
}catch(Exception ex) {}
}
isReay = false; //消费者消耗掉食物
}
}[/code

热点排行