ThreadLocal基本使用
时间: 2023-11-13 19:56:21 浏览: 90
ThreadLocal是Java中的一个线程本地变量,它提供了一种线程安全的方式来存储每个线程的数据。每个ThreadLocal对象都只能被一个线程访问,因此可以避免多线程之间的数据竞争问题。
ThreadLocal的基本使用方法如下:
1. 创建ThreadLocal对象
2. 调用ThreadLocal对象的set方法,将数据存储到当前线程的ThreadLocalMap中
3. 调用ThreadLocal对象的get方法,从当前线程的ThreadLocalMap中获取数据
下面是一个简单的示例代码:
```
public class ThreadLocalDemo {
private static ThreadLocal<String> threadLocal = new ThreadLocal<>();
public static void main(String[] args) {
Thread thread1 = new Thread(() -> {
threadLocal.set("Hello from thread1");
System.out.println(threadLocal.get());
});
Thread thread2 = new Thread(() -> {
threadLocal.set("Hello from thread2");
System.out.println(threadLocal.get());
});
thread1.start();
thread2.start();
}
}
```
在上面的示例代码中,我们创建了一个ThreadLocal对象,并在两个不同的线程中分别调用了set和get方法来存储和获取数据。由于每个线程都有自己的ThreadLocalMap,因此两个线程之间的数据不会相互干扰。
阅读全文