ThreadLocal的作用是什么?
时间: 2023-11-22 22:50:32 浏览: 79
ThreadLocal的用处
ThreadLocal是Java中的一个线程本地变量,它为每个线程提供了一个独立的变量副本,使得每个线程都可以独立地改变自己的副本,而不会影响其他线程所对应的副本。ThreadLocal的作用是为了解决多线程并发访问时的线程安全问题,它可以保证每个线程中的变量都是独立的,互不干扰,从而避免了线程安全问题的发生。
举个例子,假如有一个全局变量,多个线程同时对它进行读写操作,那么就会出现线程安全问题。而如果使用ThreadLocal,每个线程都有自己的变量副本,就不会出现线程安全问题了。
下面是一个使用ThreadLocal的例子,它可以记录每个线程执行的次数:
```java
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(new Runnable() {
@Override
public void run() {
int count = threadLocal.get() + 1;
threadLocal.set(count);
System.out.println(Thread.currentThread().getName() + " count = " + count);
}
}).start();
}
}
}
```
阅读全文