其他分享
首页 > 其他分享> > Exchanger

Exchanger

作者:互联网

简单说就是一个线程在完成一定的事务后想与另一个线程交换数据

import java.util.concurrent.Exchanger;

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

        new Thread(
            new Runnable() {
                @Override
                public void run() {
                    String data1 = "data1111111111";
                    try {
                        System.out.println(Thread.currentThread().getName()+data1+"old");
                        String data2 = exchanger.exchange(data1);
                        System.out.println(Thread.currentThread().getName()+data2+"new");
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            },"t1"
        ).start();

        new Thread(
            new Runnable() {
                @Override
                public void run() {
                    String data1 = "data2222222222";
                    try {
                        System.out.println(Thread.currentThread().getName()+data1);
                        String data2 = exchanger.exchange(data1);
                        System.out.println(Thread.currentThread().getName()+data2);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            },"t2"
        ).start();
    }
}

标签:Thread,currentThread,System,Exchanger,new,data1,String
来源: https://blog.csdn.net/rambohoo1980/article/details/119450913