官方文档在哪里说Java的并行流操作使用fork/join?
以下是我对Java 8的Stream框架的理解:
- 某些内容创建了源流
- 该实现负责提供 BaseStream#parallel() 方法,该方法又返回一个可以并行运行其操作的 Stream。
虽然有人已经找到了一种方法将自定义线程池与Stream框架的并行执行一起使用,但我无法在Java 8 API中找到任何提及默认Java 8并行Stream实现将使用ForkJoinPool#commonPool()的提及。(Collection#parallelStream(),StreamSupport类中的方法,以及我不知道的API中支持并行的其他流的其他可能来源)。
我唯一能从搜索结果中闪耀的花絮是这些:
-
Lambda 的状态:库版(“引擎盖下的并行性”)
模糊地提到了 Stream 框架和 Fork/Join 机制。叉/连接机械旨在实现此过程的自动化。
-
JEP 107:集合的批量数据操作 几乎直接声明集合接口的默认方法 #parallelStream() 使用 Fork/Join 实现自身。
但公共游泳池仍然没有什么。并行实现建立在 Java 7 中引入的 java.util.concurrency Fork/Join 实现之上。
-
类数组 (Javadoc)
直接多次声明使用公共池。ForkJoin 公共池用于执行任何并行任务。
所以我的问题是:
哪里说ForkJoinPool#commonPool()用于从Java 8 API获得的流的并行操作?