InheritableThreadLocal 举例
时间: 2023-08-15 18:13:27 浏览: 155
ThreadLocal应用示例及理解
InheritableThreadLocal 是 Java 中的一个类,它是 ThreadLocal 的子类。与 ThreadLocal 不同的是,InheritableThreadLocal 具有继承性,即子线程可以继承父线程设置的值。
下面是一个使用 InheritableThreadLocal 的简单示例:
```java
public class InheritableThreadLocalExample {
private static InheritableThreadLocal<String> threadLocal = new InheritableThreadLocal<>();
public static void main(String[] args) {
// 在主线程中设置值
threadLocal.set("Hello");
// 创建子线程并启动
Thread childThread = new Thread(() -> {
// 子线程可以继承父线程的值
System.out.println("Child Thread: " + threadLocal.get());
});
childThread.start();
// 主线程的值仍然可用
System.out.println("Main Thread: " + threadLocal.get());
}
}
```
在上面的示例中,我们在主线程中设置了 InheritableThreadLocal 的值为 "Hello"。然后,我们创建了一个子线程,并在子线程中获取该值。由于 InheritableThreadLocal 具有继承性,子线程可以获取到父线程设置的值。同时,主线程也可以继续访问该值。
输出结果:
```
Child Thread: Hello
Main Thread: Hello
```
这说明子线程成功继承了父线程的 InheritableThreadLocal 值。这在某些需要在多个线程之间传递上下文或共享数据的场景中非常有用。
阅读全文