并发的Stream流
流当中的元素如果特别多,那么只有一个“工人”在逐一处理,肯定比较慢
如果对流当中的元素,使用多个“工人”同时处理,这就是“并发”。
如何才能获取“并发流”(支持并发操作的流):
.parallelStream()
如果已经获取了一个普通的流,那么再调用一下.parallel()方法也会变成“并发流”:
.stream().parallel()
注意事项:
- 1.使用“并发流”操作时多个“工人”都在抢元素。
- 2.到底有多少个“工人”在抢、在同时操作呢?不用管JDK自己处理。
- 3.正确使用就不会出现,多个“工人”抢到同一个元素的情况。
总结:
- 1.直接获取并发流:.parallelStream()
- 2.已结获取普通流,然后升级成为并发流:.stream().parallel
public class StreamParallel {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i <= 100; i++) {
list.add("Hello - " + i);
}
//这是只有一个流在做打印输出的操作
list.stream().forEach(System.out::println);
//获取一个并发流
list.parallelStream().forEach(System.out::println);
//普通流调用变成并发流
list.stream().parallel().forEach(System.out::println);
}
}