我有一个 Java 应用程序,并且正在使用 Spring 框架。
使用 beans,我定义一个队列,其大小设置为最多 5 个元素,如下所示:
<bean id="Queue1" class="java.util.concurrent.PriorityBlockingQueue">
<constructor-arg type="int"><value>5</value></constructor-arg>
</bean>
然后我使用注入(inject)将其传递给 Java 中的构造函数,并在构造函数中对其进行初始化。在 Java 中,我定义并完成了以下操作:
private final BlockingQueue<OrdenTrabajo> queue;
...
this.queue = queue
...
后来,当我尝试使用代码获取队列大小时:
queue.size()
它返回 0 而不是 5。为什么?
另外,是否有可能获取当前队列中的元素数量?
最佳答案
int 构造函数参数是 initial capacity ,而不是最初存在的元素数量。
PriorityBlockingQueue.size()
返回集合中存在的元素数量; PriorityBlockingQueue.remainingCapacity()
返回可用容量。
关于java - 如何使用 Java 和 Spring 知道 BlockingQueue 中当前有多少元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35270819/