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