其它ThreadLocal修改的对象
源码在做线程set的时,或get时
public void set(T value) {
Thread t = Thread.currentThread();//取当前线程
ThreadLocalMap map = getMap(t);// A处 其实是去取当前线程对诮的map
if (map != null)
map.set(this, value);//B处 将当前线程作为key,value为set的值
else
createMap(t, value);//C片 创建一个map给当前ThreadLocalmap
}
A处代码t为当前线程
ThreadLocalMap getMap(Thread t) {
return t.threadLocals;
}
C处对应代码 这里很明确的当前的ThreadLocalMap 是给了当前线程t.的
void createMap(Thread t, T firstValue) {
t.threadLocals = new ThreadLocalMap(this, firstValue);
}
综合上所得,ThreadLocal的值不是设置在应用的类上的值,还是设置在当前线程的变量值