小编dan*_*n66的帖子

并行流如何“知道”使用封闭的 ForkJoinPool?

在 Java 8 中,可以设置一个自定义的 forkJoinPool 以供并行流使用,而不是公共池。

forkJoinPool.submit(() -> list.parallelStream().forEach(x ->{...} ))
Run Code Online (Sandbox Code Playgroud)

我的问题是它在技术上是如何发生的?
流无论如何都不知道它已提交到自定义 forkJoinpool,并且无法直接访问它。那么最终如何使用正确的线程来处理流的任务呢?

我尝试查看源代码但无济于事。我最好的猜测是在提交时的某个时刻设置了一些 threadLocal 变量,然后由流稍后使用。如果是这样,为什么语言开发人员会选择这种方式来实现行为,而不是将池依赖注入到流中?

谢谢!

java forkjoinpool java-stream

5
推荐指数
1
解决办法
576
查看次数

标签 统计

forkjoinpool ×1

java ×1

java-stream ×1