首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ConcurrentHashMap中桶级锁与段级锁的区别?

ConcurrentHashMap中桶级锁与段级锁的区别?
EN

Stack Overflow用户
提问于 2019-06-10 13:30:16
回答 1查看 1.6K关注 0票数 3

我通过下面的链接和一些在线视频教程,但无法找到确切的区别桶级锁和段级锁在ConcurrentHashMap。

ConcurrentHashMap

EN

回答 1

Stack Overflow用户

发布于 2019-06-10 14:03:39

在Java8中,ConcurrentHashMap将其逻辑更改为使用桶级锁而不是段级锁。

有什么区别?

在Java 7中,映射被细分为各个片段,每个片段本身都是一个并发可读的哈希表。每个段中包含一定数量的桶。

桶本身是键值对的列表/数组。

并行处理map的线程数仅限于段数。

在Java 8中,锁级别被移动到桶级,而段被移除(它仍然在代码中,但没有使用)。

所以,基本上,在Java 7中,插入是锁定几个桶,在Java 8中只有一个。

之所以这样做的另一个原因是,与映射并行工作的线程数量会在地图大小增加时增加(更多的桶-更多的线程)。在Java中,7段的大小是固定的,如果不重新创建一个映射,就无法更改它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56527417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档