读书人

java兑现多线程范围内的数据共享

发布时间: 2012-10-07 17:28:51 作者: rapoo

java实现多线程范围内的数据共享

代码如下,比较坑爹,就是上一篇文章的hashmap改为了ThreadLocal

public class ThreadScopeShareData {/** * @param args *///private static HashMap<Thread, Integer> map = new HashMap<Thread, Integer>();private static ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>();public static void main(String[] args) {for(int i=0;i<2;i++){new Thread(new Runnable() {@Overridepublic void run() {int data = new Random().nextInt();System.out.println(Thread.currentThread() +" data is "+data);//map.put(Thread.currentThread(), data);threadLocal.set(data);new A().get();new B().get();}}).start();}}static class A{妹,希望你能理解public void get(){int data = threadLocal.get();//map.get(Thread.currentThread());System.out.println("A get data:" + data + " from " + Thread.currentThread().getName());}}static class B{public void get(){int data = threadLocal.get();//map.get(Thread.currentThread());System.out.println("B get data:" + data + " from " + Thread.currentThread().getName());}}}

读书人网 >编程

热点推荐