可以通过调用 .async
方法显式地指定线程池。
例如:
import akka.actor.ActorSystem
import akka.stream.ActorMaterializer
import akka.stream.scaladsl._
implicit val system = ActorSystem("my-system")
implicit val materializer = ActorMaterializer()
val source = Source(1 to 10)
.map(i => {
println(s"before thread: ${Thread.currentThread().getName}")
i
})
.async
.map(i => {
println(s"after thread: ${Thread.currentThread().getName}")
i * 2
})
source.runForeach(println)
在上述代码中,我们使用了 .async
方法将默认的线程池替换成了一个新的线程池。这样,我们就能够明确地指定线程池,而不必依赖默认的行为。