gpt4 book ai didi

scala - Scala 的 future 如何跨多核安排

转载 作者:行者123 更新时间:2023-12-01 10:38:03 25 4
gpt4 key购买 nike

Scala 如何确定何时在不同的 CPU(核心)上立即执行 future ,以及何时将其排队等待当前核心释放?或者,如果它使用完全不同的方法,请解释:Scala Futures 是如何安排的? (跨 CPU、跨线程、跨时间)

最佳答案

它将基于 Future 使用的 ExecutionContext。当 Future 运行任务或调用回调时,它会使用上下文来决定策略。

请注意,在典型的 Scala 应用程序中,这些是作为隐式传递的,因此您可能并不总是看到它们。前任。在玩

import scala.concurrent.ExecutionContext.Implicits.global

这通常用于引入默认上下文,它实际上来自 Akka。

你可以像这样指定你自己的线程池:

  val ctx = ExecutionContext.fromExecutor(
Executors.newFixedThreadPool(5))

然后像这样使用它(或隐含的)

Future {do something}(ctx)

因此,要回答您的问题,线程策略就是您告诉它的内容(这通常是隐式提供给您的)

关于scala - Scala 的 future 如何跨多核安排,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25756053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com