Was ist der Unterschied zwischen launch/join und async/await in Kotlin Coroutines?
Hallo! Ich habe angefangen, Coroutines in Kotlin zu lernen und bin bei den zwei grundlegenden Ansätzen verwirrt. Wenn ich Code schreibe, sehe ich, dass man eine Coroutine mit `launch` starten und dann auf ihre Fertigstellung mit `join()` warten kann. Außerdem gibt es `async` mit `await()`. Auf den ersten Blick machen sie dasselbe – sie starten Hintergrundarbeit und warten auf das Ergebnis. Aber ich habe das Gefühl, dass es einen Unterschied gibt und dieser wichtig ist.
Hier ist ein einfaches Beispiel, bei dem ich versuche, Daten aus zwei Quellen zu laden und sie zu kombinieren. Mit launch/join sieht es bei mir so aus:
```kotlin
fun main() = runBlocking {
var data1 = ""
var data2 = ""
val job1 = launch {
delay(1000) // Simulation des Ladens
data1 = "Daten von API 1"
}
val job2 = launch {
delay(1000)
data2 = "Daten von API 2"
}
job1.join()
```
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen