ThreadLocal理解

个人对Threadlocal的理解就是每个线程的本地变量,做到了用空间换时间的办法。

相关的实现可以参考下面的图

ThreadLocal理解ThreadLocal理解

做下相关的说明jdk1.3之前都是用的上面的没优化的示例图,下面的是改进的方式

相关的有点如下:

1.当线程结束的,这个线程的threadlocalMap将会统一的被回收掉

2.对于第一种没有尽心优化的时候,可能map的个数会很大,带来性能上的问题,

 而对于优化的方式是get ->currentThread ->threadLocalMap -> thread ,这样来看每个thread的对应的threadlocal还是少很多的


相关的具体的实现分析可以参考如下地址

http://blog.****.net/a837199685/article/details/50806876