threadLocal

线程中对ThreadLocal 属性的操作 实际上是对 当前线程的ThreadLocalMap 属性对象的操作,该对象是一个以ThreadLocal 实例为key 的map . 

所以每个线程都有自己单独的ThreadLoacalMap 属性,对其操作也不会影响到其他线程。。

public void set(T value) {
        Thread t = Thread.currentThread();
        ThreadLocalMap map = getMap(t);
        if (map != null)
            map.set(this, value);
        else
            createMap(t, value);
    }

ThreadLocalMap getMap(Thread t) {
return t.threadLocals; //这句是重点, 写的是ThreadLocal 的set 实现上里面执行的 是 Thread.threadLocalMap.set();
}
 

 

posted on 2018-06-25 16:41  远方的人  阅读(118)  评论(0编辑  收藏  举报

导航