我已经阅读了ConcurrentHashmap
来自不同来源的一些声明,并想验证它们是否确实如此。
在创建 a 的迭代器后
ConcurrentHashmap
,只有线程的删除和更新操作才能保证得到反映。编辑/删除后迭代器是否刷新其快照?为什么迭代器会以不同于 ADD 的方式处理更新/删除。ConcurrentHashmap
将其数据分片以减少写入器锁争用。该concurrencyLevel
参数直接指定类内部创建的分片数量。如果我们简单地使用无参数构造函数,并接受默认配置,地图将在您添加第一个值之前实例化 16 个分片所需的对象……这里的分片是什么意思?它是地图中的一个数据桶 - 还是整个地图的副本。我理解这类似于数据库中的一个页面,可以独立锁定毛皮更新。为什么会concurrencyLevel
影响记忆呢?