Java多线程与并发之ThreadLocal( 六 )


3.2.1 ThreadLocalMap没初始化

ThreadLocalMap没初始化 , ThreadLocalMap为null时 , 会调用setInitialValue()方法:

private T setInitialValue() {    //initialValue方法一般会被重写 , 不重写的话 , 直接返回null         T value = https://mparticle.uc.cn/api/initialValue(); Thread t = Thread.currentThread(); //获取当前线程的ThreadLocalMap ThreadLocalMap map = getMap(t); if (map != null) //ThreadLocalMap已经被创建 , 那么直接设置初始值(即保存变量副本) , 初始值来自initialValue方法 map.set(this value); else //创建ThreadLocalMap createMap(t value); return value;

推荐阅读