一、内存结构图
二、工作原理
(1)Thread有一个类型为ThreadLocal.ThreadLocalMap threadLocals 的实例变量,即每个线程都有一个属于自己的ThreadLocalMap;
(2)ThreadLocalMap内部维护着Entry数组,每个Entry代表一个完整的对象,key是ThreadLocal本身,value是ThreadLocal的泛型值;
(3)并发多线程环境下,每个线程在往ThreadLocal里面设值的时候,其实都是在往自己的ThreadLocalMap中设值,读是以某个ThreadLocal为引用,在自己的map里面找到对应的value,从而实现线程隔离;