黑马程序员技术交流社区

标题: 【广州校区】+【原创】+ Exchanger实现线程间数据交换 [打印本页]

作者: jianhong    时间: 2019-1-15 15:01
标题: 【广州校区】+【原创】+ Exchanger实现线程间数据交换
一,以下是使用exchange实现线程1和线程2的数据交换,执行后控制台将输出       线程2拿到的数据这是我线程1的数据,11111111
        线程1拿到的数据这是我线程2的数据,2222222

public class ExchangeTest {
    public static void main(String[] args) {
        Exchanger<String> exchanger = new Exchanger<>();
        ExecutorService service = Executors.newCachedThreadPool();

        //线程1获得线程2数据
        service.execute(new Runnable() {
            @Override
            public void run() {
                try {
                    String content = exchanger.exchange("这是我线程1的数据,11111111");
                    System.out.println("线程1拿到的数据"+content);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

            }
        });

        //线程2获取线程1数据
        service.execute(new Runnable() {
            @Override
            public void run() {
                try {
                    String content = exchanger.exchange("这是我线程2的数据,2222222");
                    System.out.println("线程2拿到的数据"+content);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        });

        service.shutdown();

    }
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2