Avatar ·

Was ist der Unterschied zwischen launch/join und async/await in Kotlin Coroutines?

Hallo zusammen! Ich habe angefangen, Coroutines in Kotlin zu lernen und bin bei zwei Ansätzen verwirrt: launch/join und async/await. Anscheinend ermöglichen beide, Aufgaben parallel auszuführen und auf deren Abschluss zu warten, aber ich verstehe nicht, wann man was verwenden soll. Ich habe ein einfaches Beispiel: Ich muss zwei Dateien herunterladen und sie zusammenführen. Ich habe beide Methoden ausprobiert, aber die Ergebnisse sind unterschiedlich. Die erste Methode mit launch/join: ```kotlin fun main() = runBlocking { var result1 = "" var result2 = "" val job1 = launch { delay(1000) result1 = "File1 content" } val job2 = launch { delay(1000) result2 = "File2 content" } job1.join() job2.join() println("$result1 $result2") } ``` Die zweite Methode mit async/await: ```kotlin fun main() = runBlocking { val deferre