一、简介 ThreadLocal是JDK包提供的,它提供了线程本地变量,也就是如果你创建了一个ThreadLocal变量,那么访问这个变量的每一个线程都会有这个变量的一个本地副本。当多线程操作这个变量时,实际操作的就是自己本地内存里面的变量,从而在一定程度上避免了线程安全问题。但是使用ThreadLocal对象去存储一个共享资源时,每一个线程的副本变量都指向同一个共享资源,这里也是会存在线程安全问题的。 ThreadLocal设计初衷:提供线程内部的局部变量,在本线程内随时随地可取,隔离其他线程。 根据源码,画出ThreadLocal原理图 原创文章