2013-06-04 46 views
2

目前我們使用:在scala中運行期貨的最有效方式是什麼?

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?

回答

4

斯卡拉期貨已經在引擎蓋下使用了ForkJoinPool(具體來說,他們使用了java的ForkJoinPool的一個scala特定的分支)。

https://github.com/scala/scala/blob/v2.10.1/src/library/scala/concurrent/impl/ExecutionContextImpl.scala#L1

尤其注意到​​擴展ForkJoinPool.ForkJoinWorkerThreadFactory

class DefaultThreadFactory(daemonic: Boolean) extends ThreadFactory with ForkJoinPool.ForkJoinWorkerThreadFactory 
+0

酷,謝謝大家的效應初探。你是否仍然可以看到使用Akka調度員的任何一點? –

+1

如果你只是使用期貨,那麼可能不會 –

相關問題