楼主你好,两个线程并发访问map中同一条链,一个线程在尾部删除,一个线程在前面遍历查找,问为什么前面的线程还能正确的查找到后面被另一个线程删除的节点 这个是基于jdk6的吗? jdk6中, HashEntry的 next定义为final,因此每次remove操作都不能简单地修改next指针,就需要将要删除结点的前面所有结点整个赋值一遍。而get方法有可能获得的是仍未修改的 HashEntry 链表 jdk7中 HashEntry的 next没有定义为final,应该不会出现读到脏数据的问题吧 如果我理解错误,烦请指出,情不吝赐教,谢谢。
点赞 1

相关推荐

hwwhwh:同双非,有大厂实习其实也没啥用,主要看运气,等就行了
点赞 评论 收藏
分享
10-26 13:03
已编辑
门头沟学院 物流经理
在okr拆解的小太阳...:实习待过,我待的部门氛围很好,基本不加班,双休有保证。
投递正浩创新EcoFlow等公司10个岗位
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务