> 以上内容 base JDK1.7,1.8 的实现更加复杂但是原理类似,建议在 1.7 的基础上查看源码。 1.8中的ConcurrentHashMap主要是基于CAS+Synchronized实现?
Activity
crossoverJie commentedon Jul 9, 2018
@BossChow 简单说是这样的,空了也补充下 1.8 的情况。
crossoverJie commentedon Jul 21, 2018
@BossChow
#70
已经更新
JuneYuan commentedon Sep 2, 2018
感谢作者分享,反馈几个小问题——
“
感觉这里的表述有点 confusing, 因为从代码看,就是一个遍历链表的过程,长度为 0 就直接
return null
, 否则就遍历直至找到对应的 entry, 并没有出现判断是否为链表的逻辑~HashMap 并发场景出现死循环的部分,图不太好看明白,而且为啥一个图重复了两次呀
ConcurrentHashMap 的 put 流程
“不为空则需要新建一个 HashEntry 并加入到 Segment 中,同时会先判断是否需要扩容。”
笔误?应该是说“为空”的情况?
crossoverJie commentedon Sep 4, 2018
@JuneYuan
建议新建一个 issue ,已经 close 的问题可能会忘记。
liuyouzhang commentedon Jan 11, 2019
图我也看不明白,还好看了下importnew上的《谈谈HashMap线程不安全的体现》这个文章,就明白了