先上代码
public static void main(String[] args){
List<Integer> i=Arrays.asList(1,2,3,4,5,6,7);
System.out.println("stream.forEach打印结果如下");
i.stream().forEach(System.out :: println);//固定结果 1234567
System.out.println("parallelStream.forEach打印结果如下");
i.parallelStream().forEach(System.out :: println);//每次的结果都不同
System.out.println("parallelStream.forEachOrdered打印结果如下");
i.parallelStream().forEachOrdered(System.out :: println);//结果同stream.forEach
}
通过打印结果发现parallelStream每次执行的结果都不相同,与多线程程序中执行的结果类似。
于是乎便有了以下代码:
public static void main(String[] args){
//模拟10000条数据 循环打印测试
List<Integer> list = new ArrayList();
for (int j = 0; j < 10000; j++) {
list.add(j);
}
// 统计并行执行list的线程
Set<Thread> thr