线程范围内的共享数据
ThreadLocal 实现线程范围的共享变量
线程范围内的变量,在线程内共享,在线程外独立
特殊的类:ThreadLocal类,就相当于map
一个ThreadLocal代表一个变量,故其中只能放一个数据
若需要里那个变量要线程内共享,则要定义两个ThreadLocal对象
private static ThreadLocal<Integer> x=new ThreadLocal<Integer>(); public static void main(String[] args) { for (int i = 0; i < 2; i++) { new Thread(new Runnable() { public void run() { int data = new Random().nextInt(); System.out.println(Thread.currentThread().getName() + " has put data: " + data); x.set(data); new A().get(); new B().get(); } }).start(); } } static class A { public void get() { int data =x.get(); System.out.println("A from " + Thread.currentThread().getName() + " get data: " + data); } } static class B { public void get() { int data =x.get(); System.out.println("B from " + Thread.currentThread().getName() + " get data: " + data); } }