2013-06-04 4 views
2

Actuellement nous utilisons:Quelle est la manière la plus efficace de gérer des contrats à terme sur scala?

val simpleOps: ExecutionContext = Akka.system(app).dispatchers.lookup("akka.actor.simple-ops") 

Ensuite, nous Implicitement importer quand nous créons et cadrez notre avenir. A part ça, nous n'utilisons pas Akka actuellement.

Il existe des moyens plus simples d'obtenir ExecutionContext, mais je ne suis pas sûr qu'il fonctionnera sur Java Fork/Join Pool, ce qui est un peu plus performant que java ExecutorService.

Est-ce qu'Akka est le seul moyen d'obtenir le format ExecutionContext sous FJP? ExceptionContext existe-t-il d'autres moyens aussi performants que Akka FJP MessageDispatcher?

Répondre

4

Scala Futures utilise déjà ForkJoinPool sous le capot (en particulier, ils utilisent une fourche scala spécifique de ForkJoinPool java).

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

En particulier, notez que DefaultThreadFactory étend ForkJoinPool.ForkJoinWorkerThreadFactory:

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

Cool, merci pour la reponse. Voyez-vous toujours quelque chose d'utiliser les répartiteurs Akka pour cela? –

+1

Si vous utilisez simplement Futures, alors probablement pas –

Questions connexes