ThreadLocal 扩容机制
2023-07-14 22:08:42 3 举报
ThreadLocal 扩容流程
作者其他创作
大纲/内容
全局探测式清理expungeStaleEntries()
将 value 也置为 null,以便 GC 回收
否
是
旧数组是否遍历完
执行完启发式清理工作cleanSomeSlots() 后未清理到任何数据
entry 数量到达了 threshold(len * 2/3)
遍历旧数组
执行 resize() 扩容
重计下次扩容的阈值:threshold = newLen * 2/3
遇到的 key 是否为 null
entry 数量 达到 threshold * 3/4 ?
结束
创建新的 entry 数组,大小为原来的 2 倍
执行 rehash()
重新计算 hash 位置,放到新数组中
0 条评论
下一页