Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Yes, it is possible to combine the use of Scala's ExecutionContext with Java's ExecutorService.

Scala provides a default global ExecutionContext that uses a ForkJoinPool. However, it is also possible to create custom ExecutionContexts using a java.util.concurrent.Executor as the underlying execution engine.

To combine the use of Scala's ExecutionContext with Java's ExecutorService, you can create an ExecutionContext from the ExecutorService using the ExecutionContext.fromExecutorService method.

For example:

import java.util.concurrent.Executors
import scala.concurrent.ExecutionContext

val javaExecutor = Executors.newFixedThreadPool(10)
val scalaExecutionContext = ExecutionContext.fromExecutorService(javaExecutor)

// use the scalaExecutionContext for Scala Future operations
// and the javaExecutor for Java Callable/Runnable operations