Exchanger偶数线程间的数据交换

public class ExchangerDemo {

    public static void main(String args[]) {
        Exchanger exchanger = new Exchanger<>();

        new Thread(()->{
            System.out.println(Thread.currentThread().getName()+" start.....");
            try {
                String result = exchanger.exchange("A result");
                System.out.println(Thread.currentThread().getName()+":"+result);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName()+" end.....");
        },"A").start();


        new Thread(()->{
            System.out.println(Thread.currentThread().getName()+" start.....");
            try {
                String result = exchanger.exchange("B result",10, TimeUnit.SECONDS);
                System.out.println(Thread.currentThread().getName()+":"+result);
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (TimeoutException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName()+" end.....");
        },"B").start();

A start.....
B start.....
B:A result
A:B result
A end.....
B end.....

你可能感兴趣的:(Exchanger偶数线程间的数据交换)