gpt4 book ai didi

concurrency - ConcurrentHashMap,JDK8 中改进的并发特性

转载 作者:行者123 更新时间:2023-12-04 02:38:22 29 4
gpt4 key购买 nike

有没有并发高手能解释一下ConcurrentHashMap中的并发特性与以前的JDK相比有哪些改进

最佳答案

那么,ConcurrentHashMap已经完全改写。在 Java 8 之前,每个 ConcurrentHashMap有一个在构建时固定的“并发级别”。出于兼容性原因,还有constructor accepting such a level虽然不是以原始方式使用它。映射被分成与它的并发级别一样多的段,每个段都有自己的锁,所以理论上,如果它们都发生在不同的段上,这取决于散列.

在 Java 8 中,每个哈希桶都可以单独更新,因此只要没有哈希冲突,就可以进行与其当前容量一样多的并发更新。这与 compute 等新功能一致。保证原子更新的方法,因此,至少锁定更新的哈希桶。在最好的情况下,他们确实只锁定了那个桶。

此外,ConcurrentHashMap受益于应用于所有类型的哈希映射的一般哈希改进。当某个桶发生哈希冲突时,实现将求助于该桶内的类似结构的排序映射,从而降级为 O(log(n))复杂性而不是 O(n)搜索桶时旧实现的复杂性。

关于concurrency - ConcurrentHashMap,JDK8 中改进的并发特性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36571873/

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