从outofmemory异常</t>中防止ConcurrentLinkedQueue <t>

时间:2010-10-26 08:25:33

标签: java queue out-of-memory

使用ConcurrentLinkedQueue时,如何限制队列的大小。是否有可能通过外部存储异常?

2 个答案:

答案 0 :(得分:5)

ConcurrentLinkedQueue的大小是无限制的,所以如果生产者投入物品的速度快于消费者可以移除的物品,那么它最终会耗尽你的记忆力。如果要限制队列的大小,请尝试使用阻止队列,例如LinkedBlockingQueueArrayBlockingQueue。第一个的大小可以选择性地限制,而第二个的大小总是有界的。

答案 1 :(得分:0)

我在这个问题上有点晚了,但是你总是可以设置一个上限,当你超出时,你的方法将使用一个标记来为下一个标记腾出空间,依此类推。