为什么 ForkJoinPool 是为 Scala 分叉的?
首选哪种实施方式和哪种情况?
scala 库拥有自己的 ForkJoinPool 副本的明显原因是 scala 必须在 1.7 之前的 JVM 上运行,并且ForkJoinPool
仅在 Java 1.7 中引入。
此外,对内部(scala)使用进行了一些更改,例如:
https://github.com/scala/scala/commit/76e9da2ca4c31daec2b04848c3c2dbad6ecd426e
鉴于scala的版本可能不会给你任何优势(如果你正在编译和运行java 1.7),我会说你自己使用你可能应该使用java的版本。至少 java 的版本被精确记录并完全“公开”,而 scala 版本的状态尚不清楚(它很可能仅供内部使用)。但是,在某些地方,您可能别无选择。例如ForkJoinTasks
,有一个forkJoinPool
方法需要 scala 版本的ForkJoinPool
. 如果有人能够获得/找到任何官方声明 scala 版本的ForkJoinPool
声明它确实是公开且稳定的,那么我会很高兴地恢复这个建议。