package first;
import java.util.concurrent.TimeUnit;
public class ThreadLocals {
static ThreadLocal<Integer> locals = new ThreadLocal<Integer>() { // 定义一个共享的 ThreadLocal,在不同的线程里面保存的值不同,都是保存
protected Integer initialValue() {return 1;}; //当前线程的值的,你不能控制它操作哪个线程,因为它操作的就是当前 lcoals变量所在的那个xgtk
};
public static void main(String args[]) {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("开始设置线程"+Thread.currentThread().getName());
locals.set(10);
try {
TimeUnit.SECONDS.sleep(1);
}catch(InterruptedException e) {
}
System.out.println("开始读取线程"+Thread.currentThread().getName());
System.out.println(locals.get());
}
});
t.start();
System.out.println("开始设置线程"+Thread.currentThread().getName());
locals.set(20);
try {
TimeUnit.SECONDS.sleep(2);
}catch(InterruptedException e) {
}
System.out.println("开始读取线程"+Thread.currentThread().getName());
System.out.println(locals.get());
}
}