Java之ConcurrentHashMap
2022-08-29 14:14:07 6 举报
AI智能生成
Java之ConcurrentHashMap
作者其他创作
大纲/内容
1.7
数组+链表
Segment 数组 + HashEntry 节点
分段锁,默认并发是16,一旦初始化,Segment 数组大小就固定,后面不能扩容
先获取锁,根据 key 的 hash 值 定位到 Segment ,再根据 key 的 hash 值 找到具体的 HashEntry ,再进行插入或覆盖,最后释放锁
1.8
数组+链表 / 红黑树
Node 节点
CAS + synchronized 来保证并发安全性
根据 key 的 hash 值 定位到 Node节点,再判断首节点是否为空,空的话通过 cas 去赋值首节点 ; 首节点非空的话,会用 synchronized 去锁住首节点,并判断是是同个首节点,是的话再去操作
0 条评论
下一页