/*
* 个人觉得这里可以取返回值,如果大于j的话取了用,这样也是可行的。
* 因为expungeStaleEntry执行过程中是把连续段内所有无效slot都清理了一遍了。
*/
你说的这个取返回值应该把返回值k(k>j)作为下次expungeStaleEntry传参吧。应该不可行 expungeStaleEntries 目的应该是把桶全部清理干净&&整理到合适位置。expungeStaleEntry这个里面有一个操作是把j之后slot != null的元素再hash放到合适位置,如果你下次直接从k开始整理的话,那么对于[j, k]这个区间内的元素都整理不到了,放不到合适的槽位给漏掉了。
ThreadLocal源码分析1. 背景 ThreadLocal源码解读,网上面早已经泛滥了,大多比较浅,甚至有的连基本原理都说的很有问题,包括百度搜索出来的第一篇高访问量博文,说ThreadLocal内...