Sobes.tech
Middle+

O que são assíncrono, paralelo e concorrente no contexto do Go?

sobes.tech IA

Resposta da IA

No contexto do Go:

  • Assincronismo — execução de operações sem bloquear o thread principal, geralmente através de goroutines e canais. Permite iniciar tarefas que podem ser executadas de forma independente e sem esperar pela sua conclusão.

  • Paralelismo — execução simultânea de várias tarefas em diferentes núcleos do processador. Em Go, isso é alcançado pelo agendador de goroutines, que as distribui pelos threads do sistema.

  • Concorrência — capacidade de um programa de gerenciar várias tarefas que podem ser executadas simultaneamente ou em sequência, garantindo acesso correto aos recursos compartilhados.

Exemplo de goroutine:

func worker(id int) {
    fmt.Printf("Trabalhador %d iniciado\n", id)
    // trabalho
}

func main() {
    for i := 1; i <= 5; i++ {
        go worker(i) // início assíncrono
    }
    time.Sleep(time.Second) // aguardando conclusão
}