每一个线程都有一个threadLocals对象,该对象为一个ThreadLocalMap,用于存放此线程中的所有TreadLocal
对象。ThreadLocalMap类似实现了WeakHashMap功能,但是对于去重采取方法不一样,(估计是防止强引用都消失了,ThreadLocalMap中的对象无法自动释放)。
TreadLocal对象有一个原子性的threadLocalHashCode(不停累加0x61c88647产生)用做hashCode。
TreadLocal的get方法就是根据当前TreadLocal对象threadLocalHashCode去拿数据。