老师可不可以解释下这个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 对象移除掉,可以分析一下这个方法哦

0
0

Java读源码之Netty深入剖析

解析netty各大组件细节,百万级性能调优,设计模式实际运用

2334 学习 · 283 问题

查看课程