Java BlockingQueue如何等待队列变为非空

Java BlockingQueue如何等待队列变为非空,java,blockingqueue,Java,Blockingqueue,我正在用多人游戏实现一个java游戏,我有一个发送者线程将消息从一个队列发送给另一个玩家。 我在这里读到: “另外支持等待队列变为非空的操作的队列” 哪些操作以及如何使用它们,我知道一个infinte循环总是检查队列中的内容是否是我想要避免的。take()将允许您等待队列中的元素变为可用,或者使用poll(长超时,时间单位)等待到指定的时间。因为这个问题似乎没有现成的解决方案,所以我必须实现自己的解决方案 因此,我要做的是,我的void block()方法调用poll()并保存返回的项。然后,从

我正在用多人游戏实现一个java游戏,我有一个发送者线程将消息从一个队列发送给另一个玩家。 我在这里读到: “另外支持等待队列变为非空的操作的队列”


哪些操作以及如何使用它们,我知道一个infinte循环总是检查队列中的内容是否是我想要避免的。

take()将允许您等待队列中的元素变为可用,或者使用poll(长超时,时间单位)等待到指定的时间。

因为这个问题似乎没有现成的解决方案,所以我必须实现自己的解决方案

因此,我要做的是,我的
void block()
方法调用
poll()
并保存返回的项。然后,从队列中获取项目的每个方法首先检查是否有保存的项目,如果有,则返回并清除该项目,否则将委托给底层java阻塞队列

幸运的是,我只消耗单个线程中的项目,所以我不必担心比赛条件