ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储。
作用
提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递和复杂度。
用法
ThreadLocal<Integer> count = new ThreadLocal<>();
DEMO
public class HelloWorld {
private static ThreadLocal<Integer> count = new ThreadLocal<>();
public static void main(String[] args) throws InterruptedException {
Thread t1 = new Thread(() -> print(1));
Thread t2 = new Thread(() -> print(2));
t1.start();
t1.join(); //调用线程等待该线程完成后,才能继续用下运行
t2.start();
}
public static void print(Integer integer) {
System.out.println(count.get());
count.set(integer);
System.out.println(count.get());
}
}
执行结果
null
1
null
2