2
私はScalaz Taskをたくさん持っています。Scalazタスクを並行して実行する方法
val tasks = for (i <- 1 to 50) yield {
Task.delay({
Thread.sleep(100L)
println(i)
i
})
}
val r = Nondeterminism[Task].gatherUnordered(tasks).run
println(r.mkString(" "))
私はタスクが並行して実行されると予想します。無作為な順番で数字を印刷し、5秒かかることはありません(それぞれ50タスクと100ミリスリープがあります)。
しかし、各タスクが100ミリ秒かかり、すべてが5秒かかり、作成されたリストが注文されることは明らかです。
パラレルで実行するにはどうすればよいですか?タスクはどこで実行するスレッドを取るか?