我正在使用scala和akka演员并且还没有找到管理处理器内核来处理并行级别的方法,这是否可以使用akka?或对程序员透明?。
答案 0 :(得分:3)
我不知道你在"管理处理器核心"的确切含义,所以我想你想问一下是否可以控制Akka中的执行线程。 直接控件(即使用Thread.start()
生成它们并使用它们进行消息处理是不可能的,但在线程管理配置方面,Akka仍然非常灵活。
在最低级别,Akka使用Dispatcher
s将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