在Scala中,如果不需要定义自己的全局
我的问题是为什么选择
我理解fork-join框架非常擅长递归地分解问题。您应该编写将任务分成两半的代码,以便一半可以在线程中执行,另一半可以由另一个线程执行。这似乎是一种非常特定的编程模型,而不是通常适用于处理广泛异步任务执行的一般性应用程序之一。
那么为什么
ExecutionContext
,可以通过导入scala.concurrent.ExecutionContext.Implicits.global
来使用全局执行上下文。我的问题是为什么选择
ForkJoinPool
作为执行程序,而不是ThreadPoolExecutor
。我理解fork-join框架非常擅长递归地分解问题。您应该编写将任务分成两半的代码,以便一半可以在线程中执行,另一半可以由另一个线程执行。这似乎是一种非常特定的编程模型,而不是通常适用于处理广泛异步任务执行的一般性应用程序之一。
那么为什么
ForkJoinPool
被选为大多数人可能使用的默认执行上下文?即使您不使用完整的fork-join范例,工作窃取设计是否会提高性能?