• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

JDK8的ParallelStream遍历无序的问题

springboot 来源:hzoboy 7次浏览

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);
    


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)