JDK8的ParallelStream遍历无序的问题

来源:互联网 发布:mac 的火箭按钮不见了 编辑:程序博客网 时间:2024/06/05 17:58

ParallelStream其实就是一个并行执行的流.它通过默认的ForkJoinPool,可能提高你的多线程任务的速度.

Stream具有平行处理能力,处理的过程会分而治之,也就是将一个大任务切分成多个小任务,这表示每个任务都是一个操作,因此像以下的程式片段:

List  list = Arrays.asList(1, 2, 3, 4, 5);list.parallelStream().forEach(out::println);

你得到的展示顺序不一定会是1、2、3、4、5,而可能是任意的顺序,就forEach()这个操作來讲,如果平行处理时,希望最后顺序是按照原来Stream的数据顺序,那可以调用forEachOrdered()。

List  list = Arrays.asList(1, 2, 3, 4, 5);list.parallelStream().forEachOrdered(out::println);

原创粉丝点击