ThreadLocal简单理解
ThreadLocal简单理解
ThreadLocal
当类中有共享变量时,多个线程的数据访问,会使变量产生线程不安全的问题。
ThreadLocal为每个使用该变量的线程提供独立的变量副本,避免了多个线程对数据的访问冲突,每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。
本质:在ThreadLocal类中有一个Map,用于存储每一个线程的变量副本,Map中元素的键为线程对象,而值对应线程的变量副本。
ThreadLocal方法
(T) get(): 获得当前线程的T,如果是首次调用,则调用initialize来得到T
protecetd initialize(): 提供一个T的初始化值,未覆盖这个方法时,默认返回null
set(T t): 设置当前线程的T值
remove(): 移除当前的T值。