thread_ShareData(多线程共享数据)

来源:互联网 发布:淘宝人最多的时段 编辑:程序博客网 时间:2024/06/07 07:24

package com.gzhs.zsd.thread;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

/*
* 线程内共享数据
* @author 谢泽鹏
* @version 1.0
*/
public class Traditional_ShareData {

//线程数据private static int data = 0;//静态Mapprivate static Map<Thread, Integer> threadData = new HashMap<Thread, Integer>();public static void main(String[] args) {    //创建两个线程    for(int i = 0; i < 2; i++){        new Thread(new Runnable(){            @Override            public void run() {                data = new Random().nextInt();                System.out.println(Thread.currentThread().getName() + " has put data :" + data);                //存放线程数据                threadData.put(Thread.currentThread(), data);                //A模块拿数据                new A().get();                //B模块拿数据                new B().get();            }        }).start();    }}//A模块static class A{    public void get(){        //获取数据        int data = threadData.get(Thread.currentThread());        System.out.println("A from " + Thread.currentThread().getName() + " get data :" + data);    }}//B模块static class B{    public void get(){        //获取数据        int data = threadData.get(Thread.currentThread());                  System.out.println("B from " + Thread.currentThread().getName() + " get data :" + data);    }       }

}

0 0
原创粉丝点击