ThreadLocal使用
时间: 2023-11-11 22:00:48 浏览: 49
ThreadLocal是Java中的一个线程局部变量,它可以为每个线程提供一个独立的变量副本,避免了线程安全问题。在多线程环境下,使用ThreadLocal可以保证每个线程都有自己的变量副本,互不干扰。
ThreadLocal的使用方法很简单,只需要创建一个ThreadLocal对象,并重写它的initialValue()方法即可。initialValue()方法会在第一次调用get()方法时被调用,用于初始化变量的值。然后就可以通过get()和set()方法来获取和设置变量的值了。
下面是一个简单的示例代码:
```
public class MyThreadLocal {
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 num = threadLocal.get();
num += 5;
threadLocal.set(num);
System.out.println(Thread.currentThread().getName() + " : " + threadLocal.get()); }
}).start();
}
}
}
```
输出结果如下:
```
Thread-0 : 5
Thread-1 : 5
Thread-2 : 5
Thread-3 : 5
Thread-4 : 5
```
可以看到,每个线程都有自己的变量副本,并且互不干扰。