InheritableThreadLocal类是ThreadLocal类的一个子类,它提供了一个线程局部变量,该变量的值可以被当前线程以及所有子线程共享。这在多线程编程中非常有用,特别是在需要在父线程和子线程之间传递数据时。 下面是一个简单的Java代码示例,演示了InheritableThreadLocal的用法:
public class InheritableThreadLocalExample { // 创建一个InheritableThreadLocal变量 private static InheritableThreadLocal<String> threadLocal = new InheritableThreadLocal<>(); public static void main(String[] args) { // 在主线程中设置InheritableThreadLocal的值 threadLocal.set("Main Thread Value"); // 创建一个子线程 Thread childThread = new Thread(() -> { // 子线程可以访问到父线程设置的InheritableThreadLocal的值 System.out.println("Child Thread Value: " + threadLocal.get()); }); // 启动子线程 childThread.start(); try { childThread.join(); } catch (InterruptedException e) { e.printStackTrace(); } // 主线程可以访问到自己设置的InheritableThreadLocal的值 System.out.println("Main Thread Value: " + threadLocal.get()); } }
在这个示例中,主线程设置了InheritableThreadLocal的值为"Main Thread Value",然后创建了一个子线程,在子线程中可以通过get方法获取到父线程设置的值。最后,主线程也可以通过get方法获取到自己设置的值。
TransmittableThreadLocal
标签:Thread,get,ThreadLocal,线程,TransmittableThreadLocal,InheritableThreadLocal From: https://www.cnblogs.com/parkdifferent/p/18162040