zoukankan      html  css  js  c++  java
  • java线程数据交换Exchanger

    两个线程都等到交换函数才能完成交换数据操作,代码如下:

    package threadLock;
    
    import java.util.Random;
    import java.util.concurrent.Exchanger;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    
    public class ExchangerTest {
    
        public static void main(String[] args) {
            final Exchanger<String> ex = new Exchanger<String>();
            ExecutorService service = Executors.newCachedThreadPool();
            service.execute(new  Runnable() {
                public void run() {
                    String data1 = "5555";
                    System.out.println("线程" + Thread.currentThread().getName() + "正在把" + """ + data1 + ""交换出去" );
                    try {
                        Thread.sleep(new Random().nextInt(1000));
                        String data2 = ex.exchange(data1);
                        System.out.println("线程" + Thread.currentThread().getName() + "交换后的数据为"" + data2 + """);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            });
            service.execute(new Runnable() {
                
                @Override
                public void run() {
                    String data1 = "gghhh";
                    System.out.println("线程" + Thread.currentThread().getName() + "正在把" + """ + data1 + ""交换出去" );
                    try {
                        Thread.sleep(new Random().nextInt(1000));
                        String data2 = ex.exchange(data1);
                        System.out.println("线程" + Thread.currentThread().getName() + "交换后的数据为"" + data2 + """);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            });
            
            service.shutdown();
        }
    }
  • 相关阅读:
    第一本书 第七章(课后题)
    java基础小测试
    随笔1
    随笔
    日记 晴 2017.7.30
    自我介绍
    与或非逻辑运算符 与或非位运算符
    日记1 天气阴 阵雨
    归并排序的两个版本实现代码
    Winedt打开tex文件报错error reading的解决方案
  • 原文地址:https://www.cnblogs.com/zhouquan-1992-04-06/p/6286325.html
Copyright © 2011-2022 走看看