关注
楼主你好,两个线程并发访问map中同一条链,一个线程在尾部删除,一个线程在前面遍历查找,问为什么前面的线程还能正确的查找到后面被另一个线程删除的节点
这个是基于jdk6的吗?
jdk6中,
HashEntry的
next定义为final,因此每次remove操作都不能简单地修改next指针,就需要将要删除结点的前面所有结点整个赋值一遍。而get方法有可能获得的是仍未修改的
HashEntry
链表
jdk7中
HashEntry的
next没有定义为final,应该不会出现读到脏数据的问题吧
如果我理解错误,烦请指出,情不吝赐教,谢谢。
查看原帖
点赞 1
相关推荐
牛客热帖
更多
正在热议
更多
# 实习生的蛐蛐区 #
36661次浏览 307人参与
# 面试官是我前女友 #
106707次浏览 726人参与
# 你认为小厂实习有用吗? #
11919次浏览 174人参与
# 当你面对裁员会如何? #
275734次浏览 2438人参与
# 计算机有哪些岗位值得去? #
12045次浏览 127人参与
# 在职场上,你最讨厌什么样的同事 #
14347次浏览 150人参与
# lastday知无不言 #
56666次浏览 458人参与
# 推荐一首陪你工作的歌吧 #
13935次浏览 97人参与
# 说说你知道的学历厂 #
26022次浏览 169人参与
# 你找工作的时候用AI吗? #
14028次浏览 187人参与
# 携程求职进展汇总 #
559248次浏览 4258人参与
# 下班后的时间你怎么安排 #
6823次浏览 106人参与
# 哪一瞬间觉得自己长大了 #
6937次浏览 155人参与
# 面试尴尬现场 #
21800次浏览 159人参与
# 工作后会跟朋友渐行渐远吗 #
29958次浏览 216人参与
# 中核求职进展汇总 #
20069次浏览 152人参与
# 社会教会你的第一课 #
27641次浏览 376人参与
# 神州信息工作体验 #
15887次浏览 74人参与
# 被AI治愈的瞬间 #
59357次浏览 628人参与
# 应届生,你找到工作了吗 #
17589次浏览 140人参与