【问题标题】:FifoBuffer - apache common collections 4 replacementsFifoBuffer - apache 常用集合 4 个替换
【发布时间】:2020-06-11 13:46:17
【问题描述】:

我想升级到 apache.commons.collections4,但某些类如 CircularFifoBufferUnboundedFifoBuffer 已删除

import org.apache.commons.collections.buffer.CircularFifoBuffer;

这些类的正确替代品是什么?

找到几个suggestions

有简·哈德卡

或者也许还有另一种选择:

用 MinMaxPriorityQueue 替换缓冲区,它本身也不是线程安全的,但幸运的是,guava 以 Queues.synchronizedQueue(Queue q) 调用的形式提供了线程安全的包装器。因为我们已经在其他地方使用了番石榴,所以应该可以使用库而不是 commons。不确定两者的性能比较。

塞德里克·赖兴巴赫

似乎 Queues#synchronizedQueue 确实等同于 BufferUtils#synchronizedBuffer,即同步对包含的队列/缓冲区的每次访问。但是,在 Guava 中更精确地匹配 CircularFifoBuffer 可能是 EvictingQueue,或者,因为同步包装器适用于任何队列,甚至 Java 自己的 Apache 的新 CircularFifoQueue。

我在mailing listrelease notes 没有找到答案

【问题讨论】:

    标签: java fifo apache-commons-collection


    【解决方案1】:

    在任务COLLECTIONS-432 Replace Buffer interface with java.util.Queue中找到答案

    BoundedFifoBuffer 替换为 java.util.concurrent.ArrayBlockingQueue

    CircularFifoBuffer 被替换为 java.util.concurrent.ArrayBlockingQueue.

    PredicatedBuffer 转入 PredivatedBuffer

    PriorityBuffer 替换为 java.util.PriorityQueue

    SynchronizedBuffer 被替换为 java.util.concurrent.SynchronizedQueue

    BlockingBuffer 替换为 java.util.concurrent.BlockingQueue (实用的 java.util.concurrent.ArrayBlockingQueue 或 java.util.concurrent.SynchronizedQueue)

    BoundedBuffer 替换为 java.util.concurrent.ArrayBlockingQueue

    TransformedBuffer 转入 TransformedQueue

    UnboundedFifoBuffer 被替换为 java.util.concurrent.ArrayBlockingQueue

    【讨论】:

      猜你喜欢
      • 2021-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-14
      • 2021-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多