资讯动态

【Java核心高阶进阶】28-ConcurrentHashMap源码剖析

发布时间:2026/8/10 23:23:45 来源:尧图企业网站定制
28 | ConcurrentHashMap 源码剖析(JDK8 CAS + synchronized)模块六:JUC并发框架与锁机制 · 第4篇,从分段锁到桶级锁,逐行拆解 ConcurrentHashMap 的 put、扩容、计数与树化机制。一、JDK7 分段锁 Segment 结构与缺陷JDK7 的 ConcurrentHashMap 采用Segment + HashEntry分段锁结构。Segment 继承 ReentrantLock,内部维护一个 HashEntry 数组。整个 Map 由一个 Segment 数组组成,每个 Segment 是一个独立的哈希表,各持一把锁。ConcurrentHashMap ├── Segment[0] (ReentrantLock) - HashEntry[] - 链表 ├── Segment[1] (ReentrantLock) - HashEntry[] - 链表 └── ...并发度等于 Segment 数量(默认16)。put 时先定位 Segment(对 hash 做再散列取模),锁定整个 Segment,再在 Segment 内的 HashEntry 数组中操作。缺陷:并发度固定:默认

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价