Las coroutines en Kotlin vienen a tratar de solucionar todos los problemas y dificultades que presentaban los Thread en Java, ya que la realidad es que hoy día es la programación asíncrona o non-blocking.
Coroutines
El concepto de función de suspensión utilizado en las coroutines de Kotlin proporciona una abstracción más segura y menos propensa a errores al realizar operaciones asíncronas.
Iniciar una Corrutina
La principal forma de iniciar una corrutina en Kotlin es con el coroutine builder launch en un contexto de algún CoroutineScope.