Sobes.tech
Middle

Fale-me sobre goroutines em Go

sobes.tech IA

Resposta da IA

As goroutines são threads leves na linguagem Go que permitem executar funções em paralelo com um consumo mínimo de memória e tempo. São geridas pelo runtime do Go, não pelo sistema operativo, o que as torna mais eficientes em comparação com os threads tradicionais.

A execução de uma goroutine é feita usando a palavra-chave go antes da chamada da função:

func sayHello() {
    fmt.Println("Olá da goroutine")
}

func main() {
    go sayHello() // inicia uma goroutine
    time.Sleep(time.Second) // damos tempo à goroutine para terminar
}

As goroutines usam canais para sincronização e troca de dados, o que simplifica a escrita de código concorrente sem bloqueios explícitos.

Vantagens principais:

  • Custos muito baixos na criação e troca de contexto.
  • Facilidade de sincronização através de canais.
  • Permitem usar eficientemente sistemas multiprocessador.