Stream都有两种模式:
顺序执行和并行执行。比如:
List <Person> people = list.getStream.collect(Collectors.toList());
并行执行为:
List <Person> people = list.getStream.parallel().collect(Collectors.toList());
在Java 7中已经有了Arrays.sort()方法可对对象进行排序,而在Java 8中,引入了新的并行排序,它比前者的排序速度更快,且遵循了Java 7引入的Fork/Join框架,可以把排序任务分配给线程池中可用的多个线程。 Java 8在java.util.Arrays类中新增了并行排序功能,能够更充分地利用多线程机制,最重要的方法是parallelSort(),可以显著加快多核机器上的数组排序。
package com.ehking.example.java8.newfeature.demo08;
import java.util.Arrays;
import java.util.concurrent.ThreadLocalRandom;
/**
* Created by shiyanwu on 2017/4/17.
* 这段代码使用parallelSetAll()方法生成20000个随机数,
* 然后使用parallelSort()方法进行排序。这个程序会输出乱序数组和排序数组的前10个元素。
*/
public class Java8ParallelArrays {
public static void main(String[] args) {
long[] arrayOfLong = new long[20000];
Arrays.parallelSetAll(arrayOfLong,
index -> ThreadLocalRandom.current().nextInt(1000000));
Arrays.stream(arrayOfLong).limit(10).forEach(
i -> System.out.print(i + " "));
System.out.println();
Arrays.parallelSort(arrayOfLong);
Arrays.stream(arrayOfLong).limit(10).forEach(
i -> System.out.print(i + " "));
System.out.println();
}
}
网友评论