ThreadLocal代码示例
时间: 2023-10-28 13:00:19 浏览: 94
Android 中 ThreadLocal使用示例
ThreadLocal的代码示例如下:
```
public class ExampleThreadLocal {
private static final ThreadLocal<String> threadLocal = new ThreadLocal<>();
public static void main(String[] args) {
// 在主线程中设置ThreadLocal的值
threadLocal.set("Main Thread Value");
// 创建两个线程并启动
Thread thread1 = new Thread(() -> {
// 在线程1中获取并打印ThreadLocal的值
System.out.println("Thread 1 Value: " + threadLocal.get());
// 在线程1中设置ThreadLocal的值
threadLocal.set("Thread 1 Value");
System.out.println("Thread 1 New Value: " + threadLocal.get());
});
Thread thread2 = new Thread(() -> {
// 在线程2中获取并打印ThreadLocal的值
System.out.println("Thread 2 Value: " + threadLocal.get());
// 在线程2中设置ThreadLocal的值
threadLocal.set("Thread 2 Value");
System.out.println("Thread 2 New Value: " + threadLocal.get());
});
// 启动线程1和线程2
thread1.start();
thread2.start();
}
}
```
在上述示例中,我们创建了一个ThreadLocal对象,用于保存各个线程的私有数据。在主线程中,我们使用`threadLocal.set("Main Thread Value")`方法将一个值设置到ThreadLocal中。然后我们创建了两个线程,每个线程都会分别获取和设置ThreadLocal的值。通过`threadLocal.get()`方法可以获取当前线程中保存的值,而`threadLocal.set("Thread 1 Value")`方法可以设置当前线程中ThreadLocal的值。注意,每个线程都有自己独立的ThreadLocalMap来保存数据。通过ThreadLocal的使用,不同线程之间可以独立保存和访问各自的数据,互不干扰。
阅读全文