【问题标题】:Any efficient BlockingQueue implementations that allow combining of entries?任何允许组合条目的有效 BlockingQueue 实现?
【发布时间】:2012-07-16 09:32:06
【问题描述】:

是否有任何允许组合条目的 java.util.concurrent.BlockingQueue 的有效(不同步所有内容)实现?

通过组合我的意思是将传入的项目与队列中现有的“相等”条目(如果有的话)合并,否则像往常一样在末尾添加项目。

【问题讨论】:

  • 那么,您的意思是一种 Queue,其行为类似于 Set,不允许重复元素?

标签: java blockingqueue merging-data


【解决方案1】:

查看此答案:Concurrent Set Queue。如果您所说的合并只是忽略与队列中已经存在的元素相等的元素,那么这可能与您的问题重复。

【讨论】:

    【解决方案2】:

    BlockingQueue 使用contains 方法。随意使用它,但不要忘记同步。 contains 是 O(n) f.x。在LinkedBlockingDeque 中,因此您可以尝试使用HashSet 更有效的方法。

    【讨论】:

      【解决方案3】:

      如果时间戳和源是它的两个属性,我看不到组合事件。除非同一个用户在 1 纳秒或更短的时间内发送了两个事件,否则我认为它们不能被视为相等且不应合并。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多