Was ist der Unterschied zwischen runBlocking und coroutineScope in Kotlin Coroutines?
Hallo Kollegen! Ich habe angefangen, Coroutines in Kotlin zu lernen und bin auf zwei Funktionen gestoßen, die mir sehr ähnlich erscheinen: runBlocking und coroutineScope. Ich habe die Dokumentation gelesen, aber ihr Verhalten ist für mich immer noch nicht offensichtlich.
Hier ist ein Beispiel, das ich geschrieben habe:
fun main() = runBlocking {
launch {
delay(1000L)
println("World!")
}
println("Hello,")
}
Und ein weiteres:
fun main() = runBlocking {
coroutineScope {
launch {
delay(1000L)
println("World!")
}
println("Hello,")
}
}
Beide Beispiele geben zuerst "Hello," und nach einer Sekunde "World!" aus. Aber ich vermute, dass es einen Unterschied gibt und dieser wichtig ist. Worin besteht er?