多线程 15 java5的Exchanger同步工具

public class ExchangerTest {

    public static void main(String[] args){

        ExecutorService threadPool = Executors.newCachedThreadPool();

        final Exchanger<String> exchanger = new Exchanger<>();

        threadPool.execute(new Runnable() {

            @Override

            public void run() {

                try {

                    String data1="wangrui";

                    System.out.println("线程"+Thread.currentThread().getName()+"正准备换出"+data1);

                    Thread.sleep((long)(Math.random()*10000));

                    String data2 = exchanger.exchange(data1);

                    System.out.println("线程"+Thread.currentThread().getName()+"换出结果"+data2);

                } catch (InterruptedException e) {

                    e.printStackTrace();

                }

            }

        });

        threadPool.execute(new Runnable() {

            @Override

            public void run() {

                try {

                    String data1="shenpei";

                    System.out.println("线程"+Thread.currentThread().getName()+"正准备换出"+data1);

                    Thread.sleep((long)(Math.random()*10000));

                    String data2 = exchanger.exchange(data1);

                    System.out.println("线程"+Thread.currentThread().getName()+"换出结果"+data2);

                } catch (InterruptedException e) {

                    e.printStackTrace();

                }

            }

        });

    }

}

如有疑问,请发邮件:[email protected]


github:??https://github.com/wangrui0/

猜你喜欢

转载自blog.csdn.net/qq_35524586/article/details/84983173