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