下面的类简单演示了 parallelStream 并行原理
1 | import java.util.ArrayList; |
运行结果:
1 | Hello World! |
从结果可以看出,ForkJoinPool 产生4个线程(一个调用线程+3个ForkJoinPool通用线程)。 为什么是生成 4个线程的原因是: ForkJoinPool 默认根据计算机的处理器数量来设定。
parallelStream 缺点
默认情况下,parallelStream 使用的是 通用 ForkJoinPool。即 任何使用 parallelStream 方法的代码都公用 同一个 线程池。
当其中一个 任务阻塞时,会影响其他使用parallelStream的代码。
解决方案:
1 | class Tse{ |