实现线程内的共享数据[转帖]_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3781 | 回复: 0   主题: 实现线程内的共享数据[转帖]        下一篇 
ying
注册用户
等级:上尉
经验:694
发帖:59
精华:0
注册:2012-10-12
状态:离线
发送短消息息给ying 加好友    发送短消息息给ying 发消息
发表于: IP:您无权察看 2012-11-2 15:37:37 | [全部帖] [楼主帖] 楼主

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;

    }

}




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论