前回の記事(Scala ExecutionContextって何 / Futureはスレッド立ち上げじゃないよ - ましめも) で import scala.concurrent.ExecutionContext.Implicits.global とは何なのか、そもそも ExecutionContext とは ということについて解説した。 おさらい ExecutionContext は スレッドプールを持っていて、そこにタスクを割り当てる機構 ExecutionContext.Implicits.global はデフォルトではCPUコア数分のスレッドを持っている Future内でThread.sleepはご法度 ExecutionContext.Implicits.global を使っている状態でThread.sleepをすると非常に迷惑になることがある。 例えば次のようなコードがあったとし