10

为什么 ForkJoinPool 是为 Scala 分叉的?

首选哪种实施方式和哪种情况?

4

1 回答 1

15

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声明它确实是公开且稳定的,那么我会很高兴地恢复这个建议。

于 2013-01-28T12:48:53.497 回答