Stream多线程并行数据处理
2019-03-23 本文已影响0人
maxzhao_
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();
这两个方法可以多次调用, 只有最后一个调用决定这个流是顺序的还是并发的。
本文地址: