gpt4 book ai didi

java - 线程是否将新值放入 ConcurrentHashMap 中自己的段中

转载 作者:行者123 更新时间:2023-12-01 19:36:59 25 4
gpt4 key购买 nike

我有一个 ConcurrentHashMap,我尝试使用 putIfAbsent() 放置一个键值对。现在,由于在并发HashMap上工作的每个线程都有自己的段,该段由一组键值对组成。是否会将新的键值对放置在其自己的段中,或者没有像这样的强制要求?

谢谢

最佳答案

你有一个根本性的误解。线程没有拥有自己的段。 ConcurrentHashMap 的映射根据其键的哈希码分布在各个段上,在最好的情况下,访问不同键的线程最终位于不同的段,因此,可以独立工作。

访问同一键的线程永远不会出现在不同的段。 Map 所有键都是唯一的原则不会改变。

但这无论如何都是对过时技术的描述。从 Java 8 开始,ConcurrentHashMap 不再使用段。根据容量和哈希码分布,所有 key 可能会同时更新。

关于java - 线程是否将新值放入 ConcurrentHashMap 中自己的段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57095875/

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