1.1 目标
了解串行的Stream流
掌握获取并行Stream流的两种方式
1.2 串行的Stream流
目前我们使用的Stream流是串行的,就是在一个线程上执行。
效果:
1.3 并行的Stream流
parallelStream其实就是一个并行执行的流。它通过默认的ForkJoinPool,可能提高多线程任务的速度。
1.4 获取并行Stream流的两种方式
1. 直接获取并行的流
2. 将串行流转成并行流
@Test
public void testgetParallelStream() {
// 掌握获取并行Stream流的两种方式
// 方式一:直接获取并行的Stream流
List<String> list = new ArrayList<>();
Stream<String> stream = list.parallelStream();
// 方式二:将串行流转成并行流
Stream<String> parallel = list.stream().parallel();
}
并行操作代码:
@Test
public void testParallel() {
Stream.of(4, 5, 3, 9, 1, 2, 6)
.parallel() // 转成并行流
.filter(s -> {
System.out.println(Thread.currentThread() + "::" + s);
return s > 3;
})
.count();
}
效果:
1.5 小结
获取并行流有两种方式:
直接获取并行流: parallelStream()
将串行流转成并行流: parallel()