Exchanger
2016-11-01 23:47
99 查看
Exchanger
The java.util.concurrent.Exchangerclass represents a kind of rendezvous point where two threads can exchange objects. Here is an illustration of this mechanism:
Two threads exchanging objects via an Exchanger. |
exchange()methods. Here is an example:
Exchanger exchanger = new Exchanger(); ExchangerRunnable exchangerRunnable1 = new ExchangerRunnable(exchanger, "A"); ExchangerRunnable exchangerRunnable2 = new ExchangerRunnable(exchanger, "B"); new Thread(exchangerRunnable1).start(); new Thread(exchangerRunnable2).start();
Here is the
ExchangerRunnablecode:
public class ExchangerRunnable implements Runnable{ Exchanger exchanger = null; Object object = null; public ExchangerRunnable(Exchanger exchanger, Object object) { this.exchanger = exchanger; this.object = object; } public void run() { try { Object previous = this.object; this.object = this.exchanger.exchange(this.object); System.out.println( Thread.currentThread().getName() + " exchanged " + previous + " for " + this.object ); } catch (InterruptedException e) { e.printStackTrace(); } } }
This example prints out this:
Thread-0 exchanged A for B Thread-1 exchanged B for A
相关文章推荐
- Exchanger数据交换工具
- Exchanger 应用
- Java多线程与并发库高级应用之线程数据交换Exchanger
- 多线程12-CyclicBarrier、CountDownLatch、Exchanger
- java线程中Exchanger使用
- java.util.concurrent 之Exchanger
- Exchanger
- 高级并发编程学习之使用Exchanger
- Java_并发线程_Semaphore、CountDownLatch、CyclicBarrier、Exchanger
- Java7并发编程--3.6、Exchanger并发任务间的数据交换
- Java并发编程中Exchanger的用法
- CyclicBarrier、CountDownLatch、Exchanger
- Java线程通信-Exchanger
- 并发技术_2_Exchanger
- CyclicBarrier CountDownLatch Semaphore Exchanger
- CADEX推出CAD Exchanger Cloud软件服务的测试版
- Exchanger
- java之JUC系列-外部Tools-Executors|Semaphor|Exchanger|CyclicBarrier|CountDownLatch
- Exchanger-兄弟线程的信息交换
- java.util.concurrent包(7)――Exchanger使用