Sobes.tech
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)
}