InheritableThreadLocal的使用
package thread.local;public class Test{ // 线程局部变量:初始值默认是null private final static InheritableThreadLocal<String> parentholder = new InheritableThreadLocal<String>(); // 线程局部变量:初始值默认是null private final static ThreadLocal<String> selfholder = new ThreadLocal<String>(); public static void main(String[] args) throws Exception { parentholder.set("parent initial value"); selfholder.set("parent initial value"); Thread a = new Thread() { public void run() { // 子线程能够获得父线程的值 System.out.println("child-thread-begin=" + parentholder.get()); // 子线程获取的是自己的初值 System.out.println("self child-thread-begin=" + selfholder.get()); } }; a.start(); Thread.sleep(100); }}
?