`

Exchanger

 
阅读更多

个人学习笔记,如有错误欢迎指正。。

 

Exchanger 用于两个线程之间进行数据或对象交换(通信),是线程安全的。 

 

方法:

public V exchange(V x)

 

 

A线程调用该方法时阻塞,直至另外一个线程B调用同一个Exchanger实例 的exchange方法,

B线程的exchange方法获取A线程的调用参数,并唤醒A线程,再返回A线程的调用参数,继续执行

A线程被唤醒并exchange方法返回B线程的调用参数,再继续执行。

 

这就完成两个线程间数据的交换,并是线程安全的。 

 

两个以上线程之间使用 exchange交换,不能确定哪两个线程相互交换了数据。

如:

 A,B,C,D四条线程调用同一个 Exchanger 实例的 exchange方法。

如:

最先 A线程调用  exchange,由于当时没有其它线程调用  exchange方法,A线程被阻塞,等待有线程跟它进行数据交换。

B,C.D 线程也调用  exchange方法,哪条线程跟A进行数据交换不能确定,看调度的执行顺序。

 

总之是两两线程成对交换数据,未匹配成对的线程等待。。。

 

 

 

 

分享到:
评论

相关推荐

    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.

    Java:Exchanger类的作用.docx

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

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

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

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

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

    Hot Water Heat Exchanger Control.rar

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

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

    Java并发工具类是Java并发编程中的重要组成部分,其中包括了多种实用的工具,如CountDownLatch、Semaphore和Exchanger,这些工具类极大地简化了多线程环境下的同步和协调问题。 1. **CountDownLatch**: ...

    Air Cooled Heat Exchanger Design.zip

    风冷式换热器(Air Cooled Heat Exchanger, 简称ACH)利用大气作为冷却介质,通过强制对流的方式带走设备内部热量,与水冷式换热器相比,具有无需水源、维护成本低的优点。 在"Air Cooled Heat Exchanger Design....

    Java Exchanger并发类使用方法

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

    ht-06-compact-heat-exchanger.pdf

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

    ht-07-macro-heat-exchanger.pdf

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

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

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

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

    本项目涉及的主题是“heat_exchanger_simulink换热器”,它使用Simulink进行热交换过程的建模和仿真。Simulink是MATLAB的一个扩展工具,专门用于动态系统建模和仿真,包括物理系统、控制系统、信号处理和通信系统等...

    exchanger_heat_heat_heatexchanger_夹套式换热器仿真_换热_

    标题中的“exchanger_heat_heat_heatexchanger”暗示了我们讨论的主题是关于换热器,特别是夹套式换热器的热能传递模拟。在工程领域,换热器是一种用于转移热量从一种流体到另一种流体的设备,而夹套式换热器是一种...

    java并发Exchanger的使用

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

    换热器设计交流 台湾 王教授Heat_exchanger_design_-_(IV).pdf

    换热器设计交流,台湾王教授Heat_exchanger_design_-_(IV).pdf文件中提到的换热器设计主要涉及了热交换器设计中的几个关键环节,包括冷凝器、蒸发器以及多成分混合物的热流设计。冷凝器和蒸发器是热交换器设计中的...

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

    Java编程线程同步工具Exchanger的使用实例解析 Java编程线程同步工具Exchanger是Java编程语言中的一种线程同步工具,它提供了一种方便的方式来交换线程之间的信息。Exchanger类可以作为两个线程交换对象的同步点,...

    Java多线程编程之使用Exchanger数据交换实例

    Java多线程编程中的Exchanger是一个非常有用的工具类,它位于`java.util.concurrent`包下,主要用于线程间的数据交换。Exchanger的核心功能是让两个线程在一个同步点相遇,进行数据交换。当一个线程调用`exchange`...

    CADExchanger:一个使用CAD Exchanger允许导入和导出其他CAD文件格式的FreeCAD插件

    用于FreeCAD的CAD Exchanger插件这个插件允许导入和导出到支持的所有商业CAD文件格式。描述是一种多平台(Windows,MacOS和Linux)商业付费应用程序,必须在其网站上购买(可以免费获得30天的评估)。 此附加组件...

    Exchanger_1.0.0_win32-源码.rar

    Exchanger_1.0.0_win32-源码.rar

Global site tag (gtag.js) - Google Analytics