-
线程容器:
给线程绑定一个Object 内容,后只要线程不变,可以随时取出。
-
TreadLocal:
每个线程自身在本地存储中占据的的局部区域。主要方法有:get、set、initialValue
注意:分析上下文、环境、起点。
构造器:哪个线程调用就属于哪个,run方法属于this线程。
InheritableThreadLocal:ThreadLocal的子类,继承上下文环境、起点的默认值initialValue。
public class ThreadLocal {
//private static ThreadLocal<Integer> threadLocal = new ThreadLocal<>();
private static java.lang.ThreadLocal<Integer> threadLocal = java.lang.ThreadLocal.withInitial(()->200); //默认值200
public static void main(String[] args) {
threadLocal.set(123);// main线程在容器中的内容
System.out.println(Thread.currentThread().getName()+"-->"+threadLocal.get());
new Thread(new thread()).start();
new Thread(new thread()).start();
}
public static class thread implements Runnable {
@Override
public void run() {
threadLocal.set((int)(Math.random()*99));// 该线程在容器中的内容
System.out.println(Thread.currentThread().getName()+"-->"+threadLocal.get());
}
}
}