`
lijunaccp
  • 浏览: 159024 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Exchanger关于交换情报的例子

 
阅读更多
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的几个关键特性: 1. **同步点**:Exchanger提供了一个安全的同步点,确保只有在两个线程都准备好交换数据时,数据交换才会发生。 2. **数据交换**:Exchanger可以交换任何类型的对象,...

    29 一手交钱,一手交货—Exchanger详解.pdf

    在Java并发编程中,Exchanger是一个非常有用的工具类,它允许两个线程间进行数据交换。这个类在处理需要同步的交互式任务时特别有用,比如在多阶段处理或者需要线程间协作的情况。Exchanger的工作原理就像一个中介,...

    Java编程线程同步工具Exchanger的使用实例解析

    例如,在上面的代码示例中,两个线程使用Exchanger交换字符串数据。 2. Exchanger的高级使用:Exchanger不仅仅局限于交换基本类型的数据,还可以交换对象。例如,我们可以使用Exchanger来交换一个对象,这可以极大地...

    java并发Exchanger的使用

    Exchanger是java 5引入的并发类,Exchanger顾名思义就是用来做交换的。这里主要是两个线程之间交换持有的对象。当Exchanger在一个线程中调用exchange方法之后,会等待另外的线程调用同样的exchange方法。 两个线程都...

    Java:Exchanger类的作用.docx

    Java中的`Exchanger`类是`java.util.concurrent`包的一部分,设计用于在多线程环境中进行数据交换。这个类提供了一个同步点,使得两个线程能够有效地传递它们各自的数据。`Exchanger`的核心功能在于它维护了两个槽位...

    Java Exchanger并发类使用方法

    Java Exchanger是Java 5引入的并发类,用来实现两个线程之间的对象交换。Exchanger顾名思义,就是用来做交换的。这里主要是两个线程之间交换持有的对象。当Exchanger在一个线程中调用exchange方法之后,会等待另外的...

    Multi-Objective Optimization of heat exchanger by entropy generation

    ### 多目标优化在换热器设计中的应用:基于熵产... Multi-Objective Optimization of Heat Exchanger Design by Entropy Generation Minimization. Journal of Heat Transfer, 132(8), 081006. DOI: 10.1115/1.4001317.

    Exchanger:免费流量交换软件-开源

    流量交换软件,适用于所有基于surfow流量交换的网站(php脚本)

    ht-07-macro-heat-exchanger.pdf

    本教程重点介绍如何使用ANSYS Fluent软件中的宏热交换器模型(Macro Heat Exchanger Model),用于模拟热交换器核心区域的温度和热交换情况。以下知识点是基于文档“ht-07-macro-heat-exchanger.pdf”中提供的内容...

    热传递matlab代码-Task-of-Heat-Exchanger:热任务交换器

    在"Task-of-Heat-Exchanger-master"这个文件夹中,可能包含了源代码、模型文件、数据输入文件以及结果分析脚本。通过阅读和理解这些文件,你可以学习到如何使用MATLAB和COMSOL进行热传递问题的建模、仿真以及结果...

    java并发工具类(CountDownLatch+Semaphore+Exchanger)

    例如,CountDownLatch可以用于确保所有参与者准备好后再开始一个活动,Semaphore可以限制并发访问特定资源的线程数量,而Exchanger则可以在多个线程之间进行精确的数据交换。了解和熟练使用这些并发工具类,能显著...

    Hot Water Heat Exchanger Control.rar

    标题中的“Hot Water Heat Exchanger Control”指的是一个热水换热器控制系统,这通常涉及工业自动化领域,特别是暖通空调(HVAC)系统。在这样的系统中,PLC(可编程逻辑控制器)扮演着核心角色,负责监控和控制换...

    Heat Exchanger using E-NTU method:使用Epsilon-NTU方法解决两种流体之间的传热问题。 它绘制了热交换器的实际温度曲线。-matlab开发

    该函数绘制热交换器的实际一维温度曲线,而不是线性曲线。 输入:两种流体的温度、质量流量和比热。 换热面积和总传热系数也是常数。 不过,根据材料和壁厚对传热系数进行建模并不会太难。 输出:出口处两种流体的...

    Air Cooled Heat Exchanger Design.zip

    风冷式换热器设计是工程领域中一个关键的子学科,主要应用于石油、化工、电力和制冷等行业的热交换系统。风冷式换热器(Air Cooled Heat Exchanger, 简称ACH)利用大气作为冷却介质,通过强制对流的方式带走设备内部...

    Aspen Plus Heat Exchanger Example换热器模拟案例.pdf

    Aspen Plus是一款用于化工过程模拟、工艺设计与模拟的严格稳态模拟工具。它主要利用以下物理关系: 1. 质量和能量平衡:这是模拟过程中最基本的原理,质量守恒和能量守恒是化工过程模拟的基础。...

    heat_exchanger_simulink换热器_simulink换热_heat_simulink热_simulink仿真_

    "heat_exchanger_simulink"是一个专注于使用Simulink进行热交换器仿真的项目,它可以帮助我们理解和优化换热器的性能。 Simulink是MATLAB的一个扩展,用于系统级的动态模拟和可视化。在本模型中,"simulink换热器...

    ht-06-compact-heat-exchanger.pdf

    首先,文档标题为“ht-06-compact-heat-exchanger.pdf”,意味着文件主要讲述的是关于紧凑式换热器(Compact Heat Exchanger)的模拟。紧凑式换热器由于其高效紧凑的特点,常用于提高热交换效率,在工程领域中应用...

    sooget exchanger

    (5) 文件交换服务 用户使用浏览器进入www.sooget.com站点,搜索自己喜欢文件链接. 点击链接,SooGet即可进行客户端间的文件交换. (6) 下载分类 用户可以按照不同的分类查看自己的下载任务 (7) 下载管理 ...

    Exchanger_1.0.0_win32-源码.rar

    Exchanger_1.0.0_win32-源码.rar

    matlab开发-热交换器insimcapepart1lmtd

    文件名“heat_exchanger_lmtd.PNG”可能是一个展示热交换器模型或者LMTD计算过程的图形界面截图,用户可以通过此图了解模型的构建和运行情况。而“heat_exchanger_lmtd.slx”则很可能是Simulink模型文件,包含实际的...

Global site tag (gtag.js) - Google Analytics