ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。
一.ThreadLocal 方法
1.get() 返回此线程局部变量的当前副本的值
2.initialValue() 返回此线程局部变量的当前线程的初始值
3.remove() 移除此线程局部变量的值
4.set(T value) 将此线程局部变量的当前线程副本的值设置
源代码:
private T setInitialValue() {T value = initialValue();Thread t = Thread.currentThread();ThreadLocalMap map = getMap(t);if (map != null)map.set(this, value);elsecreateMap(t, value);return value; }
set 的值放到 ThreadLocalMap 里面 Thread.currentThread()是当前线程线程是key值