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();
}
}
分享到:
相关推荐
这个例子展示了Exchanger的几个关键特性: 1. **同步点**:Exchanger提供了一个安全的同步点,确保只有在两个线程都准备好交换数据时,数据交换才会发生。 2. **数据交换**:Exchanger可以交换任何类型的对象,...
在Java并发编程中,Exchanger是一个非常有用的工具类,它允许两个线程间进行数据交换。这个类在处理需要同步的交互式任务时特别有用,比如在多阶段处理或者需要线程间协作的情况。Exchanger的工作原理就像一个中介,...
例如,在上面的代码示例中,两个线程使用Exchanger交换字符串数据。 2. Exchanger的高级使用:Exchanger不仅仅局限于交换基本类型的数据,还可以交换对象。例如,我们可以使用Exchanger来交换一个对象,这可以极大地...
Exchanger是java 5引入的并发类,Exchanger顾名思义就是用来做交换的。这里主要是两个线程之间交换持有的对象。当Exchanger在一个线程中调用exchange方法之后,会等待另外的线程调用同样的exchange方法。 两个线程都...
Java中的`Exchanger`类是`java.util.concurrent`包的一部分,设计用于在多线程环境中进行数据交换。这个类提供了一个同步点,使得两个线程能够有效地传递它们各自的数据。`Exchanger`的核心功能在于它维护了两个槽位...
Java Exchanger是Java 5引入的并发类,用来实现两个线程之间的对象交换。Exchanger顾名思义,就是用来做交换的。这里主要是两个线程之间交换持有的对象。当Exchanger在一个线程中调用exchange方法之后,会等待另外的...
### 多目标优化在换热器设计中的应用:基于熵产... Multi-Objective Optimization of Heat Exchanger Design by Entropy Generation Minimization. Journal of Heat Transfer, 132(8), 081006. DOI: 10.1115/1.4001317.
流量交换软件,适用于所有基于surfow流量交换的网站(php脚本)
本教程重点介绍如何使用ANSYS Fluent软件中的宏热交换器模型(Macro Heat Exchanger Model),用于模拟热交换器核心区域的温度和热交换情况。以下知识点是基于文档“ht-07-macro-heat-exchanger.pdf”中提供的内容...
在"Task-of-Heat-Exchanger-master"这个文件夹中,可能包含了源代码、模型文件、数据输入文件以及结果分析脚本。通过阅读和理解这些文件,你可以学习到如何使用MATLAB和COMSOL进行热传递问题的建模、仿真以及结果...
例如,CountDownLatch可以用于确保所有参与者准备好后再开始一个活动,Semaphore可以限制并发访问特定资源的线程数量,而Exchanger则可以在多个线程之间进行精确的数据交换。了解和熟练使用这些并发工具类,能显著...
标题中的“Hot Water Heat Exchanger Control”指的是一个热水换热器控制系统,这通常涉及工业自动化领域,特别是暖通空调(HVAC)系统。在这样的系统中,PLC(可编程逻辑控制器)扮演着核心角色,负责监控和控制换...
该函数绘制热交换器的实际一维温度曲线,而不是线性曲线。 输入:两种流体的温度、质量流量和比热。 换热面积和总传热系数也是常数。 不过,根据材料和壁厚对传热系数进行建模并不会太难。 输出:出口处两种流体的...
风冷式换热器设计是工程领域中一个关键的子学科,主要应用于石油、化工、电力和制冷等行业的热交换系统。风冷式换热器(Air Cooled Heat Exchanger, 简称ACH)利用大气作为冷却介质,通过强制对流的方式带走设备内部...
"heat_exchanger_simulink"是一个专注于使用Simulink进行热交换器仿真的项目,它可以帮助我们理解和优化换热器的性能。 Simulink是MATLAB的一个扩展,用于系统级的动态模拟和可视化。在本模型中,"simulink换热器...
Aspen Plus是一款用于化工过程模拟、工艺设计与模拟的严格稳态模拟工具。它主要利用以下物理关系: 1. 质量和能量平衡:这是模拟过程中最基本的原理,质量守恒和能量守恒是化工过程模拟的基础。...
首先,文档标题为“ht-06-compact-heat-exchanger.pdf”,意味着文件主要讲述的是关于紧凑式换热器(Compact Heat Exchanger)的模拟。紧凑式换热器由于其高效紧凑的特点,常用于提高热交换效率,在工程领域中应用...
(5) 文件交换服务 用户使用浏览器进入www.sooget.com站点,搜索自己喜欢文件链接. 点击链接,SooGet即可进行客户端间的文件交换. (6) 下载分类 用户可以按照不同的分类查看自己的下载任务 (7) 下载管理 ...
Exchanger_1.0.0_win32-源码.rar
文件名“heat_exchanger_lmtd.PNG”可能是一个展示热交换器模型或者LMTD计算过程的图形界面截图,用户可以通过此图了解模型的构建和运行情况。而“heat_exchanger_lmtd.slx”则很可能是Simulink模型文件,包含实际的...