ThreadLocal demo
时间: 2023-11-13 18:57:54 浏览: 80
ThreadLocal 是 Java 中的一个线程局部变量,它可以为每个线程创建一个独立的变量副本,这样每个线程都可以独立地修改自己的变量副本,而不会影响其他线程的变量副本。ThreadLocal 可以用来解决多线程并发访问共享变量的问题。
下面是一个简单的 ThreadLocal 示例:
```
public class ThreadLocalDemo {
private static ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>() {
@Override
protected Integer initialValue() {
return 0;
}
};
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
new Thread(() -> {
int num = threadLocal.get();
num += 5;
threadLocal.set(num);
System.out.println(Thread.currentThread().getName() + " : " + threadLocal.get());
}).start();
}
}
}
```
在这个示例中,我们创建了一个 ThreadLocal 对象 threadLocal,并重写了它的 initialValue() 方法,使得每个线程第一次访问 threadLocal 时都会得到一个初始值 0。然后我们创建了 5 个线程,每个线程都会访问 threadLocal 对象,并对它进行加 5 操作,最后输出结果。
运行这个示例,你会发现每个线程输出的结果都是独立的,互不干扰。
阅读全文