我有一个无限循环来测试队列中的消息:
//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()暂停执行,直到队列不为空?
感谢您的帮助, 佩德罗
答案 0 :(得分:3)
不确定你在问什么,但是如果你想从队列中获取一个对象并等到队列中有一个对象,你可以使用BlockingQueue。
如果要等到队列中有对象,请使用queue.take()
。它将一直挂起,直到队列中有一个对象,并将其从队列中删除。