1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

Update ConcurrentHashMap源码+底层数据结构分析.md

This commit is contained in:
guide 2021-09-15 20:23:47 +08:00
parent b23da480b2
commit f949397008

View File

@ -6,9 +6,11 @@
### 1. 存储结构
> 下图存在一个笔误 Segmeng -> Segment
![Java 7 ConcurrentHashMap 存储结构](./images/image-20200405151029416.png)
Java 7 中 ConcurrentHashMap 的存储结构如上图ConcurrnetHashMap 由很多个 Segment 组合,而每一个 Segment 是一个类似于 HashMap 的结构,所以每一个 HashMap 的内部可以进行扩容。但是 Segment 的个数一旦**初始化就不能改变**,默认 Segment 的个数是 16 个,你也可以认为 ConcurrentHashMap 默认支持最多 16 个线程并发。
Java 7 中 `ConcurrentHashMap` 的存储结构如上图,`ConcurrnetHashMap` 由很多个 `Segment` 组合,而每一个 `Segment` 是一个类似于 HashMap 的结构,所以每一个 `HashMap` 的内部可以进行扩容。但是 `Segment` 的个数一旦**初始化就不能改变**,默认 `Segment` 的个数是 16 个,你也可以认为 `ConcurrentHashMap` 默认支持最多 16 个线程并发。
### 2. 初始化