InheritableThreadLocal 線程變量

ThreadLocal有個缺陷,在子線程裏無法訪問父線程的變量,
InheritableThreadLocal 解決了這個問題,自動會把父線程的變量傳遞個子線程,
子線程只能用,修改了不會影響父線程的 東西



public class Test {

private final static InheritableThreadLocal<String> holder = new InheritableThreadLocal<String>();
public static void main(String[] args){
holder.set("aaa");
System.out.println("begin=" + holder.get());
Thread a = new Thread(){
public void run() {
System.out.println("thread-begin=" + holder.get());
holder.set("vvvvvvvvvvvvv");
System.out.println("thread-end=" + holder.get());
}
};

a.start();
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("end=" + holder.get());

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章