gpt4 book ai didi

java - 具有最快(并发)添加操作的集合

转载 作者:行者123 更新时间:2023-12-02 02:09:08 25 4
gpt4 key购买 nike

我正在寻找一个具有最有效的“添加项目”并发操作的集合。 Scala 或 Java 都不错。

我通常:

  • 插入 100,000 个条目,一次一个
  • 不关心顺序
  • 仅在没有追加时读取并清除集合。所以并不重要

此外,它应该适用于多个线程(因此存在并发约束)。但我需要它在没有并发时最有效:并发安全的设计在没有并发访问时不应该产生太大影响。

我使用这个集合来记录性能测量。这就是为什么不让实际性能偏差太多应该是最有效的。但是,由于集合大小可能很大并且无法提前知道,因此它应该有效地应对大小增加。

那么哪个集合最适合使用?

我目前在追加(和清除)操作中使用了 mutable.ListBufferbuffer.synchronized{ ... } 。我尝试使用带有类似 synchronized{ ... } block 的 var buf: List (scala),但它严重影响了测量。

最佳答案

我会说ConcurrentLinkedQueue 。使用 CAS 插入的时间复杂度为 O(1)。因此,在中等负载下,您可能不会有更快的插入速度。如果您的负载非常非常高,您可能需要考虑 LinkedBlockingQueue .

既然您说添加时可能是单线程的,那么使用 CLQ 和 CAS 将是您的最佳选择。

关于java - 具有最快(并发)添加操作的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50294880/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com