一直都对ThreadLocal类感觉隔层纱似的,因为在开发中几乎是没有用到过,也大体知道他是用来保存一个线程范围内有效的变量.甚至觉着它的实现就是类似于一个map,以线程id作为key,要保存的变量作为value.但当时看源代码,并不是自己想象的那样.由于几乎不用也一直没仔细看看源码.今天偶然的机会仔细的看了一下源代码,但它的关系结构跟自己想象的出入很大,这是我简单绘制的一个关系图: 简单描述下就是,Thread对象有一个指向ThreadLocalMap实例的threadLocals成员,Thr…