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

相关推荐

06-04 16:50
腾讯_TEG_技术
点赞 评论 收藏
分享
05-07 19:10
已编辑
中国科学技术大学 C++
silly01:现在先去 momenta,8-9月去鹅找日常实习,八股文算法背好了你这随便进。不过建议补充一下后端知识,MySQL、Redis看下八股,再补个6824,加点go后台的技术栈,9月随便进大厂。CPP后端只能来WXG
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务