Exchanger线程拷贝
来源:互联网 发布:国际交流软件 编辑:程序博客网 时间:2024/05/24 07:15
import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.concurrent.Exchanger;/** * Created by yuanyong on 17/2/8. */public class ThreadLocalTest { public static void main(String[] args) { Exchanger<List<Integer>> exchanger = new Exchanger<List<Integer>>(); new Consumer(exchanger).start(); new Producer(exchanger).start(); }}class Producer extends Thread { List<Integer> list = new ArrayList<Integer>(); Exchanger<List<Integer>> exchanger = null; public Producer(Exchanger<List<Integer>> exchanger) { super(); this.exchanger = exchanger; } @Override public void run() { Random rand = new Random(); for(int i=0; i<10; i++) { list.clear(); list.add(rand.nextInt(10000)); list.add(rand.nextInt(10000)); list.add(rand.nextInt(10000)); list.add(rand.nextInt(10000)); list.add(rand.nextInt(10000)); try { list = exchanger.exchange(list); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}class Consumer extends Thread { List<Integer> list = new ArrayList<Integer>(); Exchanger<List<Integer>> exchanger = null; public Consumer(Exchanger<List<Integer>> exchanger) { super(); this.exchanger = exchanger; } @Override public void run() { for(int i=0; i<10; i++) { try { list = exchanger.exchange(list); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.print(list.get(0)+", "); System.out.print(list.get(1)+", "); System.out.print(list.get(2)+", "); System.out.print(list.get(3)+", "); System.out.println(list.get(4)+", "); } }}
0 0
- Exchanger线程拷贝
- Java线程之Exchanger
- Exchanger:线程交换数据
- java线程之Exchanger
- 线程并发工具--Exchanger
- java线程Exchanger
- 线程转换类Exchanger
- Java线程通信-Exchanger
- Exchanger 线程之间数据传输
- Java 线程交换器 Exchanger
- java线程中Exchanger使用
- (转)java线程 Exchanger
- exchanger 线程之间交换数据
- Exchanger
- Exchanger
- Exchanger
- Exchanger
- Exchanger
- Python之日期与时间处理模块(date和datetime)
- cmake使用
- java动态代理
- 字典树
- 一键安装GitLab7在RHEL6.4上
- Exchanger线程拷贝
- Keil宏定义和如何知道单片机资源名称
- 每周六 18:30的定时器
- Android开发与Linux开发的区别与联系(入门)
- Android Touch事件分发和消费机制(很简单!)
- JAVASCRIPT之多选值排序
- documentElement 和 body 相关说明
- python问题小结
- Gitlab 创建备份