gpt4 book ai didi

java - Concurrent HashMap Null key 和并发级别

转载 作者:行者123 更新时间:2023-11-30 08:48:23 25 4
gpt4 key购买 nike

有人可以提供以下问题的答案吗:

  1. 我理解为什么 ConcurrentHashMap 中不允许 null value 的原因。但为什么不允许使用 null key

  2. 并发级别决定了有多少线程可以并发访问 map ,默认值为 16。这意味着 map 分为 16 个部分,并在每个部分上放置锁。只要初始容量也是 16,这就可以正常工作,因此有 16 个桶和 16 个锁,每个桶一个锁。当初始容量大于并发水平以及初始容量小于并发水平时,这是如何工作的?

最佳答案

  1. 为什么 ConcurrentHashMap 中不允许使用 null 键? HashMap 从 Object.hash() 获取它的内部键,它不能为空值计算。为了解决这个问题,非并发 HashMaps 将 null 映射到哈希码 0。为了在 ConcurrentHashMap 中解决这个问题,性能可能会被牺牲。
  2. 检查 ConcurrentHashMap 的执行情况: 即使您尝试将 initalCapacity 设置为某个值,它也会进行自己的内部计算,因此这些参数只是提示。

关于java - Concurrent HashMap Null key 和并发级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31991207/

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