private volatile static ThreadLocal<String> data = new ThreadLocal<String>(){
@Override
protected String initialValue(){
return "initialValue";
}
};
public static String get(){
System.out.println("线程ID:"+Thread.currentThread().getId());
System.out.println("线程name:"+Thread.currentThread().getName());
String dataStr = data.get();
data.remove();
return dataStr;
}
public static void set(String str){
data.set(str);
}
public static void main(String[] args) throws InterruptedException {
ThreadLocalTest.set("111");
System.out.println(ThreadLocalTest.get());
Thread thread1 = new Thread(){
public void run(){
ThreadLocalTest.set("222");
System.out.println(ThreadLocalTest.get());
}
};
thread1.start();
thread1.join();
System.out.println(ThreadLocalTest.get());
}