Java 非线程安全ArrayBlockingQueue

Java 非线程安全ArrayBlockingQueue,java,Java,我正在寻找与ArrayBlockingQueue类似的库。仅此而已,我不需要它提供的线程安全特性(为了更好的性能),因为它在offer(E)方法中使用了ReentrantLock 我想要的是 先进先出队列 具有初始容量,如果队列已满,则推入新元素将失败 螺纹安全不是一项要求 我在Java标准库中找不到ArrayQueue。或者,是否缺少任何类?中有一个具有以下属性的类: BoundedFifoBuffer是固定大小的缓冲区的非常有效的实现 BoundedFifoBuffer的移除顺序基于插入顺

我正在寻找与ArrayBlockingQueue类似的库。仅此而已,我不需要它提供的线程安全特性(为了更好的性能),因为它在
offer(E)
方法中使用了
ReentrantLock

我想要的是

  • 先进先出队列
  • 具有初始容量,如果队列已满,则推入新元素将失败
  • 螺纹安全不是一项要求
  • 我在Java标准库中找不到
    ArrayQueue
    。或者,是否缺少任何类?

    中有一个具有以下属性的类:

    • BoundedFifoBuffer是固定大小的缓冲区的非常有效的实现

    • BoundedFifoBuffer的移除顺序基于插入顺序;元素的删除顺序与添加顺序相同

    • 迭代顺序与删除顺序相同

    • 请注意,此实现是不同步的

    • BufferOverflowException在尝试向完整缓冲区添加元素时抛出


    使用ConcurrentLinkedQueue(有关更多详细信息,请参阅)

    应该适合您的需要。小心,因为它总是从add返回true,如果超出边界,它将抛出

    除非您知道它不够快,否则我将使用ArrayBlockingQueue。如果每秒发送数百万个对象,可以考虑批量处理以减少开销。如果每秒只有几十万次,这不太重要。

    只需使用ArrayList,并在add上简单检查“完整性”即可?或者在它周围写一个简单的包装。

    同意。围绕ArrayList的简单调整应该可以解决这个问题