ThreadLocal类来实现线程本地变量
时间: 2023-12-06 13:38:49 浏览: 103
线程ThreadLocal机制实现例子
ThreadLocal类是Java中的一个线程本地变量类,它提供了一种线程安全的方式来存储每个线程的本地变量。使用ThreadLocal类可以避免多线程之间的数据共享问题,从而提高程序的并发性能。下面是一个使用ThreadLocal类来实现线程本地变量的例子:
```java
public class ThreadLocalDemo {
private static final ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>() {
@Override
protected Integer initialValue() {
return 0;
}
};
public static void main(String[] args) {
Runnable runnable = new Runnable() {
@Override
public void run() {
int num = threadLocal.get();
for (int i = 0; i < 5; i++) {
num++;
threadLocal.set(num);
System.out.println(Thread.currentThread().getName() + " : " + threadLocal.get());
}
threadLocal.remove();
}
};
Thread thread1 = new Thread(runnable, "Thread-1");
Thread thread2 = new Thread(runnable, "Thread-2");
thread1.start();
thread2.start();
}
}
```
在上面的例子中,我们创建了一个ThreadLocal对象,并重写了它的initialValue()方法,用于初始化每个线程的本地变量。然后我们创建了两个线程,并在每个线程中对本地变量进行操作。由于每个线程都有自己的本地变量,所以它们之间的操作是互相独立的,不会相互影响。
阅读全文