我想增加LinkedBlockingQueue的容量吗?
根据设计,它是无界的(Integer.MAX_VALUE)。我们可以通过将容量作为初始值来进行限制。但是我想在创建后增加容量。顺便说一句,它可以包含当时的物品。
如何实现这一点,有什么想法吗?
答案 0 :(得分:1)
接受容量的构造函数的documentation指出:
创建具有给定(固定)容量的LinkedBlockingQueue。
固定的 表示创建队列后无法修改容量。
这可以通过声明为final
的容量来证明:
/** The capacity bound, or Integer.MAX_VALUE if none */
private final int capacity;
如果要增加固定大小队列的容量,只需创建一个新队列,或指定一个初始容量足以满足您需要的队列。