From f949397008495cba66bf131b499e846a12ddee2c Mon Sep 17 00:00:00 2001 From: guide Date: Wed, 15 Sep 2021 20:23:47 +0800 Subject: [PATCH] =?UTF-8?q?Update=20ConcurrentHashMap=E6=BA=90=E7=A0=81+?= =?UTF-8?q?=E5=BA=95=E5=B1=82=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84=E5=88=86?= =?UTF-8?q?=E6=9E=90.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ConcurrentHashMap源码+底层数据结构分析.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/java/collection/ConcurrentHashMap源码+底层数据结构分析.md b/docs/java/collection/ConcurrentHashMap源码+底层数据结构分析.md index cb5ce818..89f9d24e 100644 --- a/docs/java/collection/ConcurrentHashMap源码+底层数据结构分析.md +++ b/docs/java/collection/ConcurrentHashMap源码+底层数据结构分析.md @@ -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. 初始化