私はAkkaディスパッチャとグローバル実行コンテキストの基本的な違いを知っています。Akka実行コンテキストと将来のグローバルコンテキスト
I)はscala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.ExecutionContext.Implicits.global
val resultF = (0 to 100).map(
x =>
Future {
val startTime = System.currentTimeMillis()
val task = Future {
Thread.sleep(100)
x
}
task.onSuccess {
case result =>
val timeRemaining = System.currentTimeMillis() - startTime
println(s"$result $timeRemaining")
}
}
)
StdIn.readLine()
と平均のThread.sleepに等しい時間(上の上記のコードプリントをこのコードを試み、平均103ミリ秒の周り。
しかし、次のコードでは、100-400ミリ秒の時間が表示されます。
val system = ActorSystem("test")
implicit val executionContext = system.dispatcher
val resultF = (0 to 100).map(
x =>
Future {
val startTime = System.currentTimeMillis()
val task = Future {
Thread.sleep(100)
x
}
task.onSuccess {
case result =>
val timeRemaining = System.currentTimeMillis() - startTime
println(s"$result $timeRemaining")
}
}
)
StdIn.readLine()
私は離れて使用thread-pool
の大きな違いだかを理解するために失敗しています。
W/oもっと正確な質問... http://doc.akka.io/docs/akka/2.5/scala/dispatchers.html – cchantep
@cchantep私はディスパッチャをよく知っていますが、私はそうではありません上記2つのコードスニペットに大きな違いがある理由を確かめてください。 – Atiq