ThreadLocal主要是用来进行线程隔离,在并发情况下对于共享变量操作就会造成不安全得情况,有些变量既然不想共享那么就可以通过ThreadLocal进行保存,在一些场景下比如当前用户的的信息,我们可以直接放入到ThreadLocal中,这样也省去了方法对于用户信息得传递,并且还能保证每个用户登陆后自己的信息都是相互隔离,那么我们可以看下ThreadLocal是如何做到线程隔离的
下图就是Threadlocal的set方法
可以看出代码还是比较清晰的 我们的关注点可以放在这个getMap()方法上面,它的返回类型是一个ThreadLocalMap 。在跟进getMap()方法
可以看出是调用了一个Thread的静态方法 ,再跟进一下看一下Thread的threadlocals方法
代码就很清晰了,每个线程都维护了自己相对应的ThreadMap,保证了线程之间的数据隔离



