1、hashmap1.7死锁
在多线程场景下,扩容期间存在节点位置互换指针引用的问题,形成死环。
2、hashmap1.8
不会产生死锁,但是由于并发的情况下有可能导致数据覆盖,导致数据丢失。
1.8对hash链表迁移时,数组index采用高低位+原数组的长度重新hash
3、1.8在扩容时引入了高低位指针搭配。
本文分析了HashMap在Java 1.7版本中存在的死锁问题及其原因,并探讨了Java 1.8版本如何改进以避免死锁的发生,同时指出1.8版本在高并发场景下可能存在的数据覆盖问题。
1、hashmap1.7死锁
在多线程场景下,扩容期间存在节点位置互换指针引用的问题,形成死环。
2、hashmap1.8
不会产生死锁,但是由于并发的情况下有可能导致数据覆盖,导致数据丢失。
1.8对hash链表迁移时,数组index采用高低位+原数组的长度重新hash
3、1.8在扩容时引入了高低位指针搭配。
662
5174
2974
1322
1539
4809

被折叠的 条评论
为什么被折叠?
