Scala如何确定何时在不同的CPU (核心)上立即执行未来,以及何时将其排队等待当前核心释放?或者,如果它使用了完全不同的方法,请解释: Scala Futures是如何安排的?(跨CPU、跨线程、跨时间)
发布于 2014-09-14 13:01:36
它将基于未来使用的ExecutionContext。当将来运行任务或调用回调时,它使用上下文来决定策略。
请注意,在典型的Scala应用程序中,这些是作为隐式传递的,因此您可能不会总是看到它们。例如。在游戏中
import scala.concurrent.ExecutionContext.Implicits.global这通常被用来引入一个默认的上下文,它实际上来自Akka。
您可以像这样指定自己的线程池:
val ctx = ExecutionContext.fromExecutor(
Executors.newFixedThreadPool(5))并像这样使用它(或隐含的)
Future {do something}(ctx)因此,为了回答你的问题,线程策略就是你告诉它的(这通常是一个隐含的对你可用的)。
https://stackoverflow.com/questions/25756053
复制相似问题