java - 并发 hashmap size() 方法复杂度

标签 java concurrency java.util.concurrent concurrenthashmap

我想知道在 ConcurrentHashMap 上调用的 size() 方法是否与通常的 size() 方法具有相同的复杂性哈希表。

最佳答案

ConcurrentHashMap.size() 的新实现在 JDK 8 中使用了一种很酷的算法,它们是从 LongAdder 复制粘贴的。 .

实际上,ConcurrentHashMap.size() 的复杂度几乎是恒定的( Nerd 语言中的“O(1)”)并且与 HashMap.size( ) 可以忽略不计。不相信我?打开我的基本test project自己跑一跑。我当前的机器上没有安装 JDK 7,如果能得到关于 Java 1.7 与 Java 1.8 的时间成本对比的反馈会很酷。

关于java - 并发 hashmap size() 方法复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10754675/

相关文章:

java - 我是否必须同步访问 Java 中封装的线程安全数据结构?

使用 ConcurrentHashMap 进行 Kotlin 并发,同时在不使用锁的情况下检索和删除

java - java中的迭代器类型(弱一致性)

java - HashSet 和多线程

java - 在java中跨多个进程更新单个对象

java - 为什么在这里使用 Atomic?

java - 请解释这个 put-if-absent 成语中的竞争条件

java - 自定义列表重复最后添加的元素

带完成检查的java cron解决方案

java - 为什么数组赋值不兼容,即使它们的数据类型是兼容的?