多线程下需要特别注意变量的线程安全问题,可以使用ThreadLocal进行多线程下变量的隔离,保证各线程下变量互不影响。 ##ThreadLocal内部实现原理
从JDK源码中,可以看出ThreadLocal内部使用ThreadLocalMap保存变量的。 ThreadLocalMap来自由线程的内部属性,其实就是每一个线程Thread内部会有一个ThreadLocalMap用来保存自己线程的变量。
。
多线程的环境下,虽然是同一个ThreadLocal实例,但是存储的ThreadLocalMap却不是同一个,因此取出变量时,不会相互影响。