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.