java多线程编程——同步器Exchanger
2024-09-04 12:42:28
类java.util.concurrent.Exchanger提供了一个同步点,在这个同步点,一对线程可以交换数据。每个线程通过exchange()方法的入口提供数据给他的伙伴线程,并接收他的伙伴线程提供的数据,并返回。
当在运行不对称的活动时很有用,比如当一个线程填充了buffer,另一个线程从buffer中消费数据的时候,这两个线程可以用
Exchanger来交换数据。当两个线程通过Exchanger交换数据的时候,这个交换对于两个线程来说是线程安全的。两个线程都会等到自己的程序运
行到Exchanger这个地方时,进行等待。然后再进行数据交换,交换完毕后,各自进行以后的程序流程。
Exchanger可以在两个线程之间交换数据,只能是2个线程,他不支持更多的线程之间互换数据。
当线程A调用Exchange对象的exchange()方法后,他会陷入阻塞状态,直到线程B也调用了exchange()方法,然后以线程安全的方式交换数据,之后线程A和B继续运行
最新文章
- java中如何实现多态
- python模块简介
- 使用SqlBulkCopy类来批量复制数据
- WPF元素可视化效果
- Jquery中的 height(), innerHeight() outerHeight()区别
- ecshop lang用法
- C#关于一个程序,只可以有一种实例的方法
- OpenStack的bridge_sto off的解释
- 【MySQL for Mac】在Mac终端导入&;导出.sql文件
- Could not delete folder on Win7
- Prototype 原型模式
- 转:ReportViewer控件使用方法
- eclipse安装svn插件,在输入url后,一直卡在in progress界面不懂。
- QT Programming 1
- Maven使用(一)—— Maven的安装与全局配置
- TypeScript 快速学习
- 搭建 RabbitMQ Server 高可用集群【转】
- 【代码笔记】Web-JavaScript-JavaScript输出
- 解决 ModuleNotFoundError: No module named 'pip'
- PLSQL Developer启动失败