• jdk8-stream-并行流的使用


    使用jdk的stream, 可以非常方便的将串行改为并行

    1, 判断是否质数

        /**
         * 将一个stream改成简单的并行
         */
        @Test
        public void test1() {
            // 串行
            long count = IntStream.range(0, 100000).filter(this::isPrime).count();
            System.out.println(count);
    
            // 并行
            long count1 = IntStream.range(0, 100000).parallel().filter(this::isPrime).count();
            System.out.println(count1);
        }
    
        /**
         * 判断是否质数
         * @param num
         * @return
         */
        public Boolean isPrime(int num) {
            int tmp = num;
            if (tmp < 2) return false;
            for (int i = 2; Math.sqrt(tmp) >= i; i++) {
                if (tmp % i == 0) return false;
            }
            return true;
        }

    可以看到, 调用了一个parallel() 就可以改为并行计算

    2, 获取一个集合的并行流

     /**
         * 获取一个并行流
         */
        @Test
        public void test2() {
            List<JSONObject> objects = Lists.newArrayList();
            Stream<JSONObject> jsonObjectStream = objects.parallelStream();
        }

    3, 使用并行排序

        /**
         * 并行排序
         */
        @Test
        public void test3() {
            int[] lists = new int[1000];
            Arrays.parallelSort(lists);
        }
  • 相关阅读:
    用了7年做到项目经理,女朋友却离开了我
    手把手教你建网站--程序小白适用篇
    燃尽图的学习与理解
    每周进度
    四人组队
    读构建之法之感
    两人组队,小学生的四则运算
    词汇统计
    AMQP中的架构和组成元素
    MSSQL机制
  • 原文地址:https://www.cnblogs.com/wenbronk/p/9100214.html
Copyright © 2020-2023  润新知