ich den folgenden Code haben:Futures ausgeführt, um, obwohl es keine Abhängigkeit ist
def f1: Future[Unit] = Future {
Thread sleep 10000
println("1")
1
}
def f2: Future[Unit] = Future {
Thread sleep 5
println("2")
}
def f3(x: Unit, y: Unit): Future[Unit] = Future {
Thread sleep 10
println("3")
}
def main(args: Array[String]): Unit = {
val f = for {
r1 <- f1
r2 <- f2
r3 <- f3(r1, r2)
} yield r3
Await.result(f, Duration.Inf)
}
f3
hängt von f2
und f1
es keine Abhängigkeit zwischen f1
und f2
Wenn ich laufen der Code, den ich bekomme:
1
2
3
Ich möchte f1
und f2
parallel laufen aber vor f3
.
2
1
3
Wie kann ich das tun: So weil f2
vor f1
die Ausgabe sollte beendet werden soll?
Sie sie nicht parallel ausgeführt werden können und eine vor dem anderen zu beenden erwarten. –
Möglicherweise relevant: https://www.reddit.com/r/scala/comments/3zofjl/why_is_future_totally_unusable/ – Reactormonk