扩容源码
先来看一下扩容的源码
void resize(int newCapacity) {
Entry[] oldTable = table;
int oldCapacity = oldTable.length;
if (oldCapacity == MAXIMUM_CAPACITY) {
threshold = Integer.MAX_VALUE;
return;
}
//根据新的长度创建好的newTable
Entry[] newTable = new Entry[newCapacity];
// initHashSeedAsNeeded(newCapacity)这个返回值为false
// 转移
transfer(newTable, initHashSeedAsNeeded(newCapacity));
table

博客围绕Java扩容展开,先给出扩容源码,接着举例说明。假设两个线程同时扩容并进行数据迁移,线程A完成整个扩容后,线程B继续执行,经三轮循环后形成死循环。
最低0.47元/天 解锁文章
1730

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



