Was ist der Unterschied zwischen einem Thread und einer Coroutine in Kotlin?
Hallo zusammen! Ich habe angefangen, Kotlin und Coroutines zu lernen, aber ich kann den grundlegenden Unterschied zwischen einem normalen Thread und einer Coroutine nicht verstehen.
Beide scheinen es zu ermöglichen, Code parallel oder asynchron auszuführen. Ich habe die Dokumentation gelesen, aber sie ist kompliziert geschrieben. Zum Beispiel habe ich ein einfaches Beispiel mit Threads geschrieben:
```kotlin
fun main() {
println("Main starts: ${Thread.currentThread().name}")
val thread = Thread {
println("Thread working: ${Thread.currentThread().name}")
Thread.sleep(1000)
println("Thread done")
}
thread.start()
println("Main continues: ${Thread.currentThread().name}")
thread.join()
println("Main ends")
}
```
Und das Äquivalent mit Coroutines:
```kotlin
fun main() = runBlocking {
println("Main starts: ${Thread.currentThread().name}")
launch {
println("Coroutine working: ${Thread.currentThread().name}")
delay(1000)
println("Coroutine done")
}