关注
楼主你好,两个线程并发访问map中同一条链,一个线程在尾部删除,一个线程在前面遍历查找,问为什么前面的线程还能正确的查找到后面被另一个线程删除的节点
这个是基于jdk6的吗?
jdk6中,
HashEntry的
next定义为final,因此每次remove操作都不能简单地修改next指针,就需要将要删除结点的前面所有结点整个赋值一遍。而get方法有可能获得的是仍未修改的
HashEntry
链表
jdk7中
HashEntry的
next没有定义为final,应该不会出现读到脏数据的问题吧
如果我理解错误,烦请指出,情不吝赐教,谢谢。
查看原帖
点赞 1
相关推荐
牛客热帖
更多
正在热议
更多
# 实习生的蛐蛐区 #
34917次浏览 274人参与
# 面试官是我前女友 #
106613次浏览 726人参与
# 计算机有哪些岗位值得去? #
11705次浏览 117人参与
# 当你面对裁员会如何? #
275655次浏览 2433人参与
# 你认为小厂实习有用吗? #
10642次浏览 142人参与
# 说说你知道的学历厂 #
25099次浏览 164人参与
# 你找工作的时候用AI吗? #
13667次浏览 184人参与
# 下班后的时间你怎么安排 #
6549次浏览 97人参与
# 哪一瞬间觉得自己长大了 #
6702次浏览 147人参与
# 携程求职进展汇总 #
559190次浏览 4258人参与
# 面试尴尬现场 #
20892次浏览 145人参与
# 中核求职进展汇总 #
20040次浏览 152人参与
# 社会教会你的第一课 #
26711次浏览 363人参与
# 应届生,你找到工作了吗 #
17322次浏览 138人参与
# 学历贬值真的很严重吗? #
21905次浏览 162人参与
# 电网笔面经互助 #
36142次浏览 351人参与
# 职场中对你有帮助的书 #
17548次浏览 203人参与
# 简历当中有水分算不算造假? #
22204次浏览 309人参与
# 如何缓解求职过程中的焦虑? #
14417次浏览 125人参与
# 哪些公司校招卡第一学历 #
62070次浏览 235人参与