java的Exchanger 两个线程可以交换对象Demo

来源:互联网 发布:下载qq软件2016 编辑:程序博客网 时间:2024/04/30 03:10
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();}}}

阅读全文
0 0
原创粉丝点击