ThreadLocal 存储多个string 代码
时间: 2024-03-29 16:33:07 浏览: 111
ThreadLocal是Java中的一个线程局部变量,它可以在多线程环境下为每个线程存储独立的数据副本。如果你想在多个线程中存储多个String变量,可以使用ThreadLocal来实现。
下面是一个示例代码:
```java
import java.util.concurrent.TimeUnit;
public class ThreadLocalExample {
private static ThreadLocal<String> threadLocal = new ThreadLocal<>();
public static void main(String[] args) {
// 创建并启动两个线程
Thread thread1 = new Thread(() -> {
threadLocal.set("Hello from Thread 1");
try {
TimeUnit.SECONDS.sleep(2); // 线程1休眠2秒
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(threadLocal.get()); // 输出线程1存储的字符串
threadLocal.remove(); // 清除线程1存储的数据
});
Thread thread2 = new Thread(() -> {
threadLocal.set("Hello from Thread 2");
try {
TimeUnit.SECONDS.sleep(1); // 线程2休眠1秒
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(threadLocal.get()); // 输出线程2存储的字符串
threadLocal.remove(); // 清除线程2存储的数据
});
thread1.start();
thread2.start();
}
}
```
在上面的代码中,我们创建了一个ThreadLocal对象,并在每个线程中使用`set()`方法存储不同的字符串。然后,通过`get()`方法获取每个线程存储的字符串,并使用`remove()`方法清除存储的数据。
阅读全文