gpt4 book ai didi

调整大小时读取 ConcurrentHashMap

转载 作者:行者123 更新时间:2023-12-02 08:13:33 25 4
gpt4 key购买 nike

我想知道当我们在调整大小时尝试读取 ConcurrentHashMap 时可能发生的情况。

我知道在读取期间,第一次尝试总是不同步的。在第二次尝试中,它将尝试获取锁并重试。

但是,如果它在调整大小时发生,它将如何工作?

谢谢

最佳答案

通过查看源代码:

ConcurrentHashMap 包含一个或多个段,具体取决于并发级别。

在重新哈希期间,一个段被锁定,新表在旧表旁边构建,然后在最后替换它。

如果您调用get()在重新散列段期间并且您的 key 存储在该段中,您将访问该段的旧表而没有锁定,如果找到并且值不为空,它将被返回。如果值为 null,则调用将阻塞,直到重新散列完成,并且将在锁定下再次读取该值。

关于调整大小时读取 ConcurrentHashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44009989/

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