首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在多核之间调度Scala的未来

如何在多核之间调度Scala的未来
EN

Stack Overflow用户
提问于 2014-09-10 09:38:16
回答 1查看 146关注 0票数 3

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

EN

回答 1

Stack Overflow用户

发布于 2014-09-14 13:01:36

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

请注意,在典型的Scala应用程序中,这些是作为隐式传递的,因此您可能不会总是看到它们。例如。在游戏中

代码语言:javascript
复制
import scala.concurrent.ExecutionContext.Implicits.global

这通常被用来引入一个默认的上下文,它实际上来自Akka。

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

代码语言:javascript
复制
  val ctx = ExecutionContext.fromExecutor(
  Executors.newFixedThreadPool(5))

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

代码语言:javascript
复制
Future {do something}(ctx)

因此,为了回答你的问题,线程策略就是你告诉它的(这通常是一个隐含的对你可用的)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25756053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档