java线程系列---同步器之Exchanger
来源:互联网 发布:淘宝后小样都是假的吗 编辑:程序博客网 时间:2024/05/16 12:05
Exchanger允许两个线程在集合点交换对象,它在多流水线设计中是有用的
例子:线程间的数据交换,比如:两个人约定在某个地点交易,一手交钱,一手交货,当一个人先到指定地点,则这个人在此处等着,直到另一人到达此处才完成交易
public class ExchangerTest {
public static void main(String[] args) {
ExecutorService service = Executors.newCachedThreadPool();
final Exchanger exchanger = new Exchanger();
service.execute(new Runnable(){
public void run() {
try {
String data1 = "zxx";
System.out.println("线程" + Thread.currentThread().getName() +
"正在把数据" + data1 +"换出去");
Thread.sleep((long)(Math.random()*10000));
String data2 = (String)exchanger.exchange(data1);
System.out.println("线程" + Thread.currentThread().getName() +
"换回的数据为" + data2);
}catch(Exception e){
}
}
});
service.execute(new Runnable(){
public void run() {
try {
String data1 = "lhm";
System.out.println("线程" + Thread.currentThread().getName() +
"正在把数据" + data1 +"换出去");
Thread.sleep((long)(Math.random()*10000));
String data2 = (String)exchanger.exchange(data1);
System.out.println("线程" + Thread.currentThread().getName() +
"换回的数据为" + data2);
}catch(Exception e){
}
}
});
}
}
- java线程系列---同步器之Exchanger
- java线程系列---同步器之CountDownLatch
- Java并发同步器--Exchanger
- Java线程之Exchanger
- java线程之Exchanger
- Java并发-同步器CyclicBarrier,Exchanger,Phaser
- Java线程之semaphore和Exchanger
- java多线程编程——同步器Exchanger(四)
- java线程Exchanger
- Java线程通信-Exchanger
- java同步器之F4
- java同步器之CountDownLatch
- java同步器之CyclicBarrier
- Java线程之Exchanger-兄弟线程的信息交换
- Java高级篇(四十五)------Java线程之Exchanger
- Java多线程之~~~使用Exchanger在线程之间交换数据
- java多线程之通过Exchanger线程间传递数据
- Java并发编程系列之二十四:Exchanger
- KDE vs. GNOME:一位用户的经验之谈
- GridControl详解(十)BandedGridView
- <为知更新>Android系统如何实现UI的自适应
- 成都传智播客惊现“球球星”
- MVVM教程(三):第二章中示例中类的源码
- java线程系列---同步器之Exchanger
- Ubuntu 11.04 下安装配置 JDK 7
- Android 近百个项目的源代码,覆盖Android开发的每个领域
- C# Datetime转成java毫秒数
- 浅谈web服务器—Nginx
- Calling Extraterrestrial Intelligence Again(谢庆皇)
- C#中控制TextBox的光标位置
- GridControl详解(附)表格属性一览
- python网络爬虫