目前我们使用:
val simpleOps: ExecutionContext = Akka.system(app).dispatchers.lookup("akka.actor.simple-ops")
然后,当我们创造和构建我们的未来时,我们会隐含地导入这一点。除此之外,我们目前不使用Akka。
有更简单的方法来获取ExecutionContext,但我不确定它是否会运行Java Fork / Join Pool,这比常规的Java ExecutorService更高效。
Akka是获得FJP驱动的ExecutionContext的唯一途径吗? 有没有其他方法可以获得与Akka FJP MessageDispatcher一样高效的ExecutionContext?
答案 0 :(得分:4)
Scala期货已经使用了ForkJoinPool(具体来说,他们使用java的ForkJoinPool的scala特定分支)。
特别注意DefaultThreadFactory
扩展ForkJoinPool.ForkJoinWorkerThreadFactory
:
class DefaultThreadFactory(daemonic: Boolean) extends ThreadFactory with ForkJoinPool.ForkJoinWorkerThreadFactory