线程间共享数据的一个例子
2014-05-22 09:41
148 查看
package com.wsy.model; import java.util.HashMap; import java.util.Map; import java.util.Random; public class ThreadScopeShareData { private static Map<Thread, Integer> threadDataMap = new HashMap<Thread, Integer>(); public static void main(String[] args) { final A a = new A(); final B b = new B(); for (int i = 0; i < 2; i++) { new Thread(new Runnable() { @Override public void run() { int data = new Random().nextInt(); System.out.println(Thread.currentThread() + " data is " + data); threadDataMap.put(Thread.currentThread(), data); a.getData(); b.getData(); } }).start(); } } static class A { public void getData() { System.out.println("A: data is " + threadDataMap.get(Thread.currentThread()) + " of " + Thread.currentThread().getName()); } } static class B { public void getData() { System.out.println("B: data is " + threadDataMap.get(Thread.currentThread()) + " of " + Thread.currentThread().getName()); } } }
输出结果:
Thread[Thread-0,5,main] data is 160847734
Thread[Thread-1,5,main] data is 1298550232
A: data is 1298550232 of Thread-1
A: data is 160847734 of Thread-0
B: data is 160847734 of Thread-0
B: data is 1298550232 of Thread-1
相关文章推荐
- 线程间共享数据例子--售票/退票
- 两个线程共享一个数据的实验
- 1005实现一个线程从共享的缓冲区中读数据,另一个线程向共享的缓冲区中写数据
- 线程间共享数据的一个样例
- 线程间无需特别的手段进行通信,因为线程间可以共享数据结构,也就是一个全局变量可以被两个线程同时使用,不过要注意的是线程间需要做好同步。
- 声明一个共享数组,起两个线程,两个线程分别隔一段时间(可以写一个随机数),给数组中 添加数据,每一个线程为数组添加 3 个数据即可。
- 共享一个通用的数据访问类
- 网上取数据的一个例子
- 共享一个通用的数据访问类
- 一个操作共享内存的类!可以方面的添加,删除数据,包括各种结构体!
- Linux下C语言实现的简单使用线程向FIFO里写入与读取数据的例子
- 一个使用GridView显示数据,并且可以进行添加、修改、删除操作的例子
- 学习Java6(六) 嵌入式数据库Derby(2)一个基本的例子(建数据库、建表、插入数据、查询)
- (转贴)共享一个通用的数据访问类
- 一个包含了信号、信号量、共享内存的例子
- 一个通用的动态加载数据例子(IE5,NS6,Mozilla 1.3b)
- 一个使用JdbcTemplate增加一组数据的完整例子
- 无刷新取数据的一个例子
- [原创]一个利用PHP语言读取数据库数据的例子(菜鸟版)
- 对于orale中的表数据类型的一个简单例子