老师可不可以解释下这个addToVariablesToRemove方法的作用是啥
来源:10-4 FastThreadLocal的set实现

ice_wolf
2020-03-21
@SuppressWarnings("unchecked")
private static void addToVariablesToRemove(InternalThreadLocalMap threadLocalMap, FastThreadLocal<?> variable) {
Object v = threadLocalMap.indexedVariable(variablesToRemoveIndex);
Set<FastThreadLocal<?>> variablesToRemove;
if (v == InternalThreadLocalMap.UNSET || v == null) {
variablesToRemove = Collections.newSetFromMap(new IdentityHashMap<FastThreadLocal<?>, Boolean>());
threadLocalMap.setIndexedVariable(variablesToRemoveIndex, variablesToRemove);
} else {
variablesToRemove = (Set<FastThreadLocal<?>>) v;
}
variablesToRemove.add(variable);
}
set操作里如果放进去的位置上原来已经被设置过值的话就会调用这个方法,但是我没看懂这个方法的作用是啥,还请老师指点。
写回答
1回答
-
闪电侠
2020-03-23
FastThreadLocal.removeAll 会把需要 remove 的所有的 FastThreadLocal 对象移除掉,可以分析一下这个方法哦
00
相似问题