ThreadLocal setInitialValue 如何使用
时间: 2024-10-29 17:03:10 浏览: 21
`ThreadLocal` 是 Java 中的一个线程局部变量类,它保证每个线程都拥有该变量的独立副本,不会被共享。`setInitialValue()` 方法用于设置线程开始时该 `ThreadLocal` 变量的默认值。
当你创建一个新的 `ThreadLocal` 对象时,如果不显式地调用 `initialValue()` 或者 `ThreadLocal.set()`, 则 `setInitialValue()` 方法会在线程启动时自动调用,为每个新线程设置初始值。这个值对于每个线程来说都是唯一的,不受其他线程的影响。
下面是一个简单的例子说明如何使用:
```java
public class ThreadLocalExample {
private static final ThreadLocal<String> threadLocal = new ThreadLocal<>();
public static void main(String[] args) {
// 设置初始值,所有新线程将得到这个字符串
threadLocal.setInitialValue("Default Value");
// 线程A
Thread threadA = new Thread(() -> {
System.out.println(threadLocal.get()); // 输出 "Default Value"
});
// 线程B
Thread threadB = new Thread(() -> {
System.out.println(threadLocal.get()); // 输出 "Default Value" (即使是在线程A之后启动)
});
threadA.start();
threadB.start();
}
}
```
阅读全文