java - 防止 ConcurrentLinkedQueue<T> 出现内存不足异常

标签 java queue out-of-memory

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

最佳答案

ConcurrentLinkedQueue 的大小是无限的,所以如果生产者放入元素的速度快于消费者移除元素的速度,最终它确实会耗尽你的内存。如果你想限制队列的大小,试试阻塞队列,比如LinkedBlockingQueueArrayBlockingQueue反而。第一个的大小可以有选择地限制,而第二个总是有限制的。

关于java - 防止 ConcurrentLinkedQueue<T> 出现内存不足异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4021855/

相关文章:

java - 关闭jar文件压缩

java - 如何配置 Square 的 Retrofit Client 来处理参数数量可变的请求

java - JTOpen 程序调用套接字超时

python - 单生产者多消费者

java - 尽管有缓冲,但从 Android 应用程序上传大文件会出现内存不足错误

java - 内存不足错误 : Java Heap space

memory-leaks - jetty 7 : OutOfMemoryError: PermGen space on application redeploy

java - 我不希望将相等的 vector 添加在一起(或在没有时列出)

c++ - 在磁盘上实现的 FIFO 队列(或堆栈),而不是 ram(最好在 C++ 中)

c - C中链表的队列实现