美文网首页
ThreadLocal

ThreadLocal

作者: 伊凡的一天 | 来源:发表于2017-02-18 15:33 被阅读18次

    当使用ThreadLocal对象维护一个变量时,ThreadLocal对象为每个使用该变量的线程提供独立的副本,所以线程可以独立的改变自己的副本,而不会影响其他线程的变量副本。

    从线程的角度看,目标变量就像是各个线程的本地变量(线程私有),这也是类名中Local的含义。

    ThreadLocal的实现:

    (1)ThreadLocal对象并不存储值,值存储在Thread对象的threadLocalMap属性中。

    threadLocalMap 存储了key位ThreadLocal,value为。

    (2)ThreadLocal 的 get()方法:首先通过getMap(Thread t)方法获得当前线程的threadLocalMap对象,然后根据key(key 为当前threadLocal对象,即this),从而获得value。

    (3)setInitialValue()方法中的initialValue()方法是一个protected方法,在new 一个ThreadLocal对象时可以重写该方法。

    ThreadLocal源码1 ThreadLocal源码2 ThreadLocal源码3

    ThreadLocal可能引起的内存泄漏

    www.cnblogs.com/onlywujun/p/3524675.html

    相关文章

      网友评论

          本文标题:ThreadLocal

          本文链接:https://www.haomeiwen.com/subject/vaorwttx.html