如何管理Akka使用的核心数量?

时间:2014-11-06 16:38:36

标签: scala akka

我正在使用scala和akka演员并且还没有找到管理处理器内核来处理并行级别的方法,这是否可以使用akka?或对程序员透明?。

2 个答案:

答案 0 :(得分:3)

我不知道你在"管理处理器核心"的确切含义,所以我想你想问一下是否可以控制Akka中的执行线程。 直接控件(即使用Thread.start()生成它们并使用它们进行消息处理是不可能的,但在线程管理配置方面,Akka仍然非常灵活。

在最低级别,Akka使用Dispatchers将actor绑定到底层线程池。例如,Akka中的默认执行程序使用ForkJoinPool进行所有消息处理。调度程序可以是ActorSystem的默认值,也可以基于每个行为者指定;这是官方文档中的explained extensively

所以你可以说Akka为程序员透明地管理线程,但是如果你真的想调整它的行为,那么总是可以通过适当的配置来实现。

答案 1 :(得分:2)

Akka MessageDispatcher是您控制akka中使用的线程数的方式。所有MessageDispatcher实现也都是ExecutionContext,这意味着它们可以用于执行任意代码,例如Futures。

请参阅http://doc.akka.io/docs/akka/snapshot/scala/dispatchers.html