Junior — Middle
Como é que a assíncronia é implementada ao usar corutinas?
sobes.tech IA
Resposta da IA
A asincronia nas corrotinas é alcançada através da suspensão e retomada da execução sem bloquear os threads. Quando uma corrotina encontra uma operação que pode levar tempo (por exemplo, uma requisição de rede), ela é suspensa (suspend), liberando o thread para outras tarefas. Após a conclusão da operação, a corrotina retoma do mesmo ponto.
Isso é implementado através do mecanismo de funções suspend e do compilador, que transforma as corrotinas em máquinas de estados finitos. Assim, as corrotinas permitem escrever código assíncrono de forma sequencial sem callbacks explícitos.
Exemplo em Kotlin:
suspend fun fetchData(): String {
delay(1000) // suspende a corrotina por 1 segundo sem bloquear o thread
return "Data loaded"
}
fun main() = runBlocking {
val result = fetchData() // espera assíncrona pelo resultado
println(result)
}