如何创建 scala.concurrent.ExecutionContext

How to create a scala.concurrent.ExecutionContext

如何创建 scala.concurrent.ExecutionContext ?

文档一般会给出一个整体的总结,并提到 scala.concurrent.ExecutionContext.global 的 "default" 实现。

不过,有时您必须创建自己的 E.C,而不使用 akka 和其他此类工具。

如果你想要一个 fork-join 池:

ExecutionContext.fromExecutor(
  new java.util.concurrent.ForkJoinPool(initialParallelism: Int)
)

如果你想要一个固定大小线程池:

ExecutionContext.fromExecutor(Executors.newFixedThreadPool(limit: Int))

我最近遇到了这个,值得注意的是:

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 的建议编译所有内容