Stream多线程并行数据处理

###TIP

起初,我写一个循环list的stram流,list.stram().filter(item->item>0).map(item->item.get(”id“)).parallel().collect(Collectors.toList)
的时候,想用并行流去处理,但是不了解filter与map并行,还是filter与map内部并行。

一个顺序执行的流转变成一个并行的流只要调用 parallel()方法,一个自定义list的例子:
return Stream.iterate(1L, i -> i +1).limit(n).parallel().reduce(0L,Long::sum);

一个并发流转成顺序的流只要调用sequential()方法
stream.parallel() .filter(…) .sequential() .map(…) .parallel() .reduce();
这两个方法可以多次调用, 只有最后一个调用决定这个流是顺序的还是并发的。

本文地址 Stream多线程并行数据处理

本文地址: https://github.com/maxzhao-it/blog/post/5456/