美文网首页
ThreadLocal

ThreadLocal

作者: 泠泉 | 来源:发表于2019-10-16 18:22 被阅读0次

    回顾方式

    看源码
    RequestContext->ThreadLocal->Thread->ThreadLocal.ThreadLocalMap

    自己的归纳

    • Thread中有个属性:
      ThreadLocal.ThreadLocalMap threadLocals = null;
      threadLocals是哈希表,以不同的ThreadLocal实例为key,对应存储我们想要线程隔离的值。
    • threadLocals作为Thread的属性存储于Thread内部,但Thread自己不维护这个属性。其初始值为null,取值赋值皆由ThreadLocal实例去维护,ThreadLocal实例通过Thread.currentThread()找到Thread,进而获取到属于同一个包下的Thread的threadLocals,并以this关键字将自己(ThreadLocal实例)传入到threadLocals中作为key设置或获取对应的值。
    • 所以,每个线程中有一个ThreadLocal.ThreadLocalMap属性,存储着各种不同的ThreadLocal实例,以及这些ThreadLocal实例对应的值。

    别人的归纳

    相关文章

      网友评论

          本文标题:ThreadLocal

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