ThreadLocal 线程本地变量
ThreadLocal 线程本地变量,即每个线程可以有属于自己的变量副本,其他线程无法访问自己内部的
副本变量(
每个Thread线程内部都有一个ThreadLocalMap,key为使用弱引用的ThreadLocal实例,value为线程变量的副本)
。ThreadLocal是一个弱引用。1.ThreadLoca 是线程局部变量,在于每个访问该变量的线程,在线程内部都会初始化一个独立的变量副本,只有该线程可以访问【get() /set()】访问自己内部的
副本变量
,ThreadLocal实例通常声明为 private static。2.线程在存活并且ThreadLocal实例可被访问时,每个线程隐含持有一个线程局部变量副本,当线程生命周期结束时,ThreadLocal的实例的副本跟着线程一起消失,被GC垃圾回收(除非存在对这些副本的其他引用)
ThreadLocal作用:确保在同一个线程下运作,调用的多个方法,他们可以共享同一份数据。
ThreadLocal的API
set(T value):将线程局部变量当前副本中的值设置为指定值
get():返回此线程局部变量当前副本中的值
initialValue():返回此线程局部变量当前副本中的初始值
remove():移除此线程局部变量当前副本中的值