Junior — Middle
¿Cómo se implementa la asincronía al usar corutinas?
sobes.tech AI
Respuesta de la IA
La asincronía en las corrutinas se logra mediante la suspensión y reanudación de la ejecución sin bloquear los hilos. Cuando una corrutina encuentra una operación que puede tomar tiempo (por ejemplo, una solicitud de red), se suspende (suspend), liberando el hilo para otras tareas. Después de completar la operación, la corrutina se reanuda desde el mismo punto.
Esto se implementa mediante el mecanismo de funciones suspend y el compilador, que transforma las corrutinas en máquinas de estados finitos. En consecuencia, las corrutinas permiten escribir código asíncrono en un estilo secuencial sin callbacks explícitos.
Ejemplo en Kotlin:
suspend fun fetchData(): String {
delay(1000) // suspende la corrutina durante 1 segundo sin bloquear el hilo
return "Data loaded"
}
fun main() = runBlocking {
val result = fetchData() // espera asíncrona del resultado
println(result)
}