Как создать scala.concurrent.ExecutionContext
Как создать scala.concurrent.ExecutionContext
?
Документация обычно дает общее резюме и упоминает "стандартную" реализацию scala.concurrent.ExecutionContext.global
.
Тем не менее, иногда вам нужно создать свой персональный E.C., не используя akka
и другие подобные инструменты.
Ответы
Ответ 1
Если вы хотите объединить в пул:
ExecutionContext.fromExecutor(
new java.util.concurrent.ForkJoinPool(initialParallelism: Int)
)
Если вам нужен пул потоков фиксированного размера:
ExecutionContext.fromExecutor(Executors.newFixedThreadPool(limit: Int))
Ответ 2
Я сталкивался с этим недавно, и стоит отметить, что:
type ForkJoinPool in package forkjoin is deprecated (since 2.12.0): use java.util.concurrent.ForkJoinPool directly, instead of this alias
Средством для меня было заменить импорт
import scala.concurrent.forkjoin.ForkJoinPool
с
import java.util.concurrent.ForkJoinPool
Затем все составляется по совету от VasyaNoviKov.