java的Exchanger 两个线程可以交换对象Demo
2017-09-06 14:32
369 查看
import java.util.concurrent.Exchanger; public class ExchangerDemo { public static void main(String[] args) { Exchanger exchanger = new Exchanger(); ExchangerRunnable exchangerRunnable1 = new ExchangerRunnable(exchanger, "A"); ExchangerRunnable exchangerRunnable2 = new ExchangerRunnable(exchanger, "B"); new Thread(exchangerRunnable1).start(); new Thread(exchangerRunnable2).start(); } }
import java.util.concurrent.Exchanger; 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(); } } }
相关文章推荐
- 黑马程序员-Condition条件对象、Semaphore、CyclicBarrier、倒计时门栓 CountDownLatch、Exchanger(实现两个线程之间数据交换
- Exchanger——Java两个线程间交换数据的工具类
- java多线程-Thread两个线程交换数据Exchanger
- java学习——使用Exchanger实现两个线程间的数据交换
- Java 12个线程每组两个访问同一个对象的void,synchronized,static void ,synchronized static void
- 用函数交换两个引用指向的对象--java
- java怎么实现两个对象内容的交换
- Java - Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?
- Java多线程/并发25、Exchanger线程数据交换
- 关于Java交换两个对象的问题
- Exchanger两个线程之间交换数据
- 13____java线程同步工具类之线程数据交换(Exchanger)
- Java线程总结(十):并发包------两个线程交换数据Exchanger
- 两个线程进行数据交换的Exchanger
- Java Exchanger(两线程交换数据)
- Java多线程与并发库高级应用之线程数据交换Exchanger
- Java线程:线程的同步与锁 一、同步问题提出 线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏。 例如:两个线程ThreadA、ThreadB都操作同一个对象Foo对
- Java线程(十二):Exchanger-兄弟线程的信息交换
- Exchanger两个线程之间的数据交换
- Java并发工具类之线程间数据交换工具Exchanger