theadlocal原理:
使用了theadlocal之后,所有线程使用的是同一个theadlcoal对象以及theadlocalmap集合,
但是设置数据时,每条线程用的是自己的当前线程对象作为key,
这样就达到了别的线程是拿不到自己线程的数据的目的,即线程间的数据隔离;
threadlocal的使用场景:
一个线程开始之后,需要走过多个类来完成请求,这个过程中需要一些数据的传递,怎么实现这种在当前线程运行的方法之间传递数据呢?
维护一个静态变量去存储这些数据?但是,多线程情况下,存在值覆盖的问题
我们本质的需求:不是线程间共享数据,而是单线程下的不同类之间共享数据;
--->threadlocal来解决