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
}