替换无限循环

时间:2013-02-18 10:38:37

标签: java loops wait

我有一个无限循环来测试队列中的消息:

     //main class
     boolean brun=true;

     while(brun) 
 {

      if(!queue.isEmpty()) //there's a new message 
      {
       msg=queue.remove(0);  //remove it from the queue
       nqueue--;
       //process the message
       if(msg==0)
       ...
       if(msg=999)
              brun=false; //exit
      }
     }

如何使用Condition.await()暂停执行,直到队列不为空?

感谢您的帮助, 佩德罗

1 个答案:

答案 0 :(得分:3)

不确定你在问什么,但是如果你想从队列中获取一个对象并等到队列中有一个对象,你可以使用BlockingQueue

如果要等到队列中有对象,请使用queue.take()。它将一直挂起,直到队列中有一个对象,并将其从队列中删除。