ConcurrentHashMap解析

ConcurrentHashMap的结构

在这里插入图片描述

  • 实现了AbstractMap
  • 核心是有一个Segments的属性,这个属性相当于一个重入锁ReentrantLock,是一个数组加链表的结构,每个HashEntry数组进行修改时,必须获得它对应的Segment锁
  • 接着看表中Segments的属性中有一个HashEntry->这个是一个链表节点,用于存储数据,指向下一个节点(讲大数据分成几段数据,然后变成segment,每段数据当中又被分成多个数组)

初始化

通过三个属性:initCapcity ,concurrencyLevel,loadFactor
initCapcity
这个属性决定了ConcurrentHashMap的总初始容量,和之后的segment相关
concurrencyLevel
默认16,决定了segment的数量,最多支持16个线程并发写,一旦初始化,就不能再扩容
loadFactor
Segment中的哈希表使用的,refresh——>对哈希表(底层是数组)扩容

使用new ConcurrentHashMap()进行无参构造

  • 初始化容量Segment数组长度是16ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值