package com.test;
import java.util.Random;
import java.util.concurrent.Exchanger;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ExchangerTest
{
/**
* @param args
*/
public static void main(String[] args)
{
ExecutorService pool = Executors.newCachedThreadPool();
final Exchanger changer = new Exchanger();
pool.execute(new Runnable()
{
public void run()
{
String data1 = "情报1";
System.out.println("线程:" + Thread.currentThread().getName()
+ "准备把:" + data1+"交换出去");
try
{
Thread.sleep(new Random().nextInt(10000));
String data2 = (String)changer.exchange(data1);
System.out.println("线程:" + Thread.currentThread().getName()
+ "获得了:" + data2);
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
pool.execute(new Runnable()
{
public void run()
{
String data1 = "情报2";
System.out.println("线程:" + Thread.currentThread().getName()
+ "准备把:" + data1+"交换出去");
try
{
Thread.sleep(new Random().nextInt(10000));
String data2 = (String)changer.exchange(data1);
System.out.println("线程:" + Thread.currentThread().getName()
+ "获得了:" + data2);
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
pool.shutdown();
}
}
分享到:
相关推荐
主要介绍了Java多线程编程之使用Exchanger数据交换实例,本文直接给出实例代码,需要的朋友可以参考下
Exchanger是java 5引入的并发类,Exchanger顾名思义就是用来做交换的。这里主要是两个线程之间交换持有的对象。当Exchanger在一个线程中调用exchange方法之后,会等待另外的线程调用同样的exchange方法。 两个线程都...
java.util.concurrent包中的Exchanger类可用于两个线程之间交换信息。可简单地将Exchanger对象理解为一个包含两个格子的容器,通过exchanger方法可以向两个格子中填充信息。当两个格子中的均被填充时,该对象会自动...
流量交换软件,适用于所有基于surfow流量交换的网站(php脚本)
热传递matlab代码热任务交换器 该代码代表COMSOL Multiphysics项目的构造函数,该结构与MATLAB环境连接以研究粗糙壁的传热过程。
提供通过熵产最小化进行锅炉内受热面优化设计,利用遗传算法实现多目标优化
主要介绍了Java Exchanger并发类使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
java并发工具类(CountDownLatch+Semaphore+Exchanger);java并发工具类(CountDownLatch+Semaphore+Exchanger);java并发工具类(CountDownLatch+Semaphore+Exchanger);java并发工具类(CountDownLatch+...
Aspen Plus换热器模拟
(5) 文件交换服务 用户使用浏览器进入www.sooget.com站点,搜索自己喜欢文件链接. 点击链接,SooGet即可进行客户端间的文件交换. (6) 下载分类 用户可以按照不同的分类查看自己的下载任务 (7) 下载管理 ...
Exchanger_1.0.0_win32-源码.rar
ht-07-macro-heat-exchanger.pdf
ht-06-compact-heat-exchanger.pdf
主要介绍了Java编程线程同步工具Exchanger的使用实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
丹佛斯 LPM 开发了一种计算机软件,用于确定变电站和热交换器的尺寸以及选择控制阀和泵的尺寸和类型
PDF文件的书签批量自动导入和导出 PDFBookmark-Exchanger-附件资源
Concurrent下的例子,涵盖了大部分常用类 例如BlockingQueue、CountDownLatch、CyclicBarrier、Exchanger、ExecuteService、lock、timeutil等
基于Java的多功能XML编辑器,帮助你创建、编辑和管理XML文档及转换
该函数绘制热交换器的实际一维温度曲线,而不是线性曲线。 输入:两种流体的温度、质量流量和比热。 换热面积和总传热系数也是常数。 不过,根据材料和壁厚对传热系数进行建模并不会太难。 输出:出口处两种流体的...