Junior — Middle
Como se diferenciam os threads de execução e as corrotinas no contexto da programação?
sobes.tech IA
Resposta da IA
Os threads de execução são unidades do sistema de planeamento que permitem executar código em paralelo, usando pilhas e contextos de processador separados. São mais pesados de criar e trocar, exigindo sincronização para acesso a recursos comuns.
As corrotinas são unidades de execução leves e cooperativas que funcionam dentro de threads e permitem escrever código assíncrono de forma sequencial. As corrotinas não criam novos threads, mas ao serem suspensas, libertam o thread para outras tarefas, aumentando a eficiência.
Exemplo em Kotlin:
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
delay(1000L)
println("Corrotina terminada")
}
println("Thread principal")
}
Aqui, a corrotina não bloqueia o thread principal, mas suspende-se no delay, permitindo que outras tarefas sejam executadas.