ThreadLocal
简介:
ThreadLocal(线程变量),意思是线程自己的变量;
提供线程局部变量。这些变量不同于它们的正常对应变量,因为每个访问一个变量的线程(通过其get或set方法)都有自己的、独立初始化的变量副本
用途:
可以隔离线程变量,相互不受影响
实验:
多个线程分别做累加操作,相互不受影响
实验代码:
public class T01_ThreadLocal {
private static final Integer COUNT = 10_0000;
private static ThreadLocal<Integer> threadLocal = new ThreadLocal<>();
void m() {
threadLocal.set(0);
for (int i = 0; i < COUNT; i++) {
threadLocal.set(threadLocal.get() + 1);
}
System.out.println(Thread.currentThread() + ": 总数:" + threadLocal.get());
}
public static void main(String[] args) {
T01_ThreadLocal testMain = new T01_ThreadLocal();
for (int i = 0; i < 20; i++) {
new Thread(() -> testMain.m(), "线程" + i).start();
}
}
}
实验结果:
![](https://img.haomeiwen.com/i17789669/6f6e431e74fdc975.png)
网友评论