Avatar ·

¿Cuál es la diferencia entre Thread y Coroutine en Kotlin?

¡Hola a todos! Empecé a estudiar Kotlin y coroutines, pero no puedo entender la diferencia fundamental entre un Thread normal y una Coroutine. Ambos parecen permitir ejecutar código en paralelo o de forma asíncrona. Leí la documentación, pero está escrita de manera complicada. Por ejemplo, escribí un ejemplo simple con threads: ```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") } ``` Y el equivalente con coroutines: ```kotlin fun main() = runBlocking { println("Main starts: ${Thread.currentThread().name}") launch { println("Coroutine working: ${Thread.currentThread().name}") delay(1000) println("Coroutine done") } println("Main conti