在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。
ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为ThreadLocalVariable更容易让人理解一些。
在JDK5.0中,ThreadLocal已经支持泛型,该类的类名已经变为ThreadLocal<T>。API方法也相应进行了调整,新版本的API方法分别是void set(T value)、T get()以及T initialValue()。
![](https://img2020.cnblogs.com/blog/1436863/202010/1436863-20201003230150902-823825183.png)
![](https://img2020.cnblogs.com/blog/1436863/202010/1436863-20201003230443300-780415682.png)
![](https://img2020.cnblogs.com/blog/1436863/202010/1436863-20201003230504214-245358125.png)
![](https://img2020.cnblogs.com/blog/1436863/202010/1436863-20201003230525091-119595672.png)
![](https://img2020.cnblogs.com/blog/1436863/202010/1436863-20201003230943515-1016080004.png)