tai*_*tco 9 concurrency concurrenthashmap java-8
任何并发专家都可以在ConcurrentHashMap中解释,与以前的JDK相比,哪些并发功能得到了改进
Hol*_*ger 17
好吧,ConcurrentHashMap已经完全重写了.在Java 8之前,每个ConcurrentHashMap都有一个"并发级别",它在构建时被修复.出于兼容性原因,仍然有一个构造函数接受这样的级别,但不以原始方式使用它.映射被拆分为多个段,因为它的并发级别,每个都有自己的锁,所以理论上,如果它们都碰巧针对不同的段,这取决于散列,可能会有并发级并发更新.
在Java 8中,每个哈希桶都可以单独更新,因此只要没有哈希冲突,就可以有与其当前容量一样多的并发更新.这与compute保证原子更新的方法等新功能一致,因此至少锁定了更新的哈希桶.在最好的情况下,他们确实只锁定那个桶.
此外,ConcurrentHashMap一般哈希改进的好处适用于所有类型的哈希映射.当某个存储桶存在哈希冲突时,实现将采用该存储桶内的结构排序映射,因此在搜索存储桶时会降低O(log(n))复杂性,而不是O(n)旧实现的复杂性.
| 归档时间: |
|
| 查看次数: |
1536 次 |
| 最近记录: |