欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

实现线程内的共享数据,线程共享数据,package cn.i

来源: javaer 分享于  点击 21919 次 点评:21

实现线程内的共享数据,线程共享数据,package cn.i


package cn.itcast.gz;import java.util.Random;public class ThreadLocalTest2 {    public static void main(String[] args) {        for(int i = 0;i<2;i++)        {            new Thread(){                @Override                public void run() {                                         int value = new Random().nextInt(100);                         System.out.println(Thread.currentThread().getName() +"has put "+value);                    MyThreadLocalData.getThreadLocalInstance().setName("xiaoming"+value);                    MyThreadLocalData.getThreadLocalInstance().setAge(value);                    new A();                    new B();                }            }.start();        }    }    static class A    {        public A()        {            String name = MyThreadLocalData.getThreadLocalInstance().getName();            Integer age = MyThreadLocalData.getThreadLocalInstance().getAge();            System.out.println(Thread.currentThread().getName()+"name:  "+name+"  age: "+age);        }    }    static class B    {        public B()        {            String name = MyThreadLocalData.getThreadLocalInstance().getName();            Integer age = MyThreadLocalData.getThreadLocalInstance().getAge();            System.out.println(Thread.currentThread().getName()+"name:  "+name+"  age: "+age);        }    }}class MyThreadLocalData{    private MyThreadLocalData(){}    private static ThreadLocal<MyThreadLocalData> data = new ThreadLocal<MyThreadLocalData>();    public static MyThreadLocalData getThreadLocalInstance()    {        MyThreadLocalData instance = data.get();        if(instance==null)        {            instance = new MyThreadLocalData();            data.set(instance);        }        return instance;    }    private String name;    private Integer age;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public Integer getAge() {        return age;    }    public void setAge(Integer age) {        this.age = age;    }    }//该片段来自于http://byrx.net
相关栏目:

用户点评