HashMap之环形链表源码图解
HashMap之环形链表源码图解1.扩容逻辑实现transfer()方法:2.扩容前的HashMap数据:3.线程一开始扩容,注意这句关键代码:4.巧了,此时线程二也开始触发扩容:
Java7在多线程操作HashMap时,并发扩容可能会导致环形链表,get方法时则可能出现死循环。以下是环形链表的具体产生过程。
1.扩容逻辑实现transfer()方法:
void transfer(Entry[] newTable, boolean rehash) {
int newCapacity = newTab
原创
2021-11-14 21:46:57 ·
825 阅读 ·
0 评论