我有一个简单的IO操作序列,暂停了5秒。
implicit val timer = IO.timer(ExecutionContext.global)
def doSth(str: String): IO[Unit] = IO(println(str))
def greeting(): IO[Unit] =
doSth("Before timer.") *>
Timer[IO].sleep(5 second) *>
doSth("After timer")
val a = greeting().unsafeRunAsyncAndForget()
如何在不使用ExecutionContext.global
,IOApp
的情况下设置计时器或如何固定ExecutionContext.global
中的线程数量?
答案 0 :(得分:2)
尝试
implicit val timer = IO.timer(ExecutionContext.fromExecutor(Executors.newFixedThreadPool(10)))