①什么是ThreadLocal?
ThreadLocal并不是线程(Thread),而是线程(Thread)的局部变量。
②ThreadLocal的作用
ThreadLocal为每个线程提供单独一份存储空间,具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问。
举例:前端发来请求后,后端的拦截器+controller+service+mapper,这是一个线程。即:每个请求,都是一个独立的线程,独享一个ThreadLocal(线程局部变量)。
验证:
然后我们前端,往这个控制层发送一个请求,观察控制台,如下:
③结论:每一个请求,对应同一个线程。这就意味着,我们可以使用ThreadLocal(线程局部变量)在不同的层之间传递一些我们需要的参数(这是关键)。
④ThreadLocal常用方法