Java8 并行流的使用

Stream API可以声明性地通过parallel()与sequential()在并行流与顺序流之间进行切换。

Fork/Join框架:就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),压如到线程队列,并行求值,得出结果之后,再将一个个的小任务运算的结果进行join汇总。

 		Instant start = Instant.now();
        //底层就是forkjoin 11024S
        long reduce = LongStream.rangeClosed(0, 100000000000L)
                .parallel()  // 并行流,若顺序流则为sequential()
                .reduce(0, Long::sum);
        System.out.println(reduce);
        Instant end = Instant.now();
        System.out.println("耗费时间为:"+ Duration.between(start,end).toMillis());

        //932356074711512064
        /*Instant start = Instant.now();
        long sum = 0L;
        for(long i=0;i<=100000000000L;i++){
            sum+=i;
        }
        System.out.println(sum);
        Instant end = Instant.now();
        System.out.println("耗费时间为:"+Duration.between(start,end).toMillis()); */

你可能感兴趣的:(Java,8)