ConcurrentHashMap_jdk1_8__put_method
2021-02-24 22:36:29 0 举报
ConcurrentHashMap jdk8 put方法的实现
作者其他创作
大纲/内容
是
cas无锁添加
put操作
覆盖
cas成功?
将链表转为红黑树
跳出循环put结束
table是否已初始化
不需要
帮助扩容操作
位置i没有数据?
否
有
真正的put操作开始:准备加锁,可能存在hash冲突,锁住链表或红黑树的头结点,锁等待
此为死循环体
当前key的hash是否在此数据结构中有出现
链表是否需要变成红黑树
链表
需要
其它线程是否正在执行扩容
无
当前结点的数据结构
扩容结束
进入死循环
红黑树
尾插
初始化结束
进行初始化
0 条评论
下一页