Junior — Middle
Como é que a alocação e gestão de memória ocorre ao usar goroutines na linguagem Go?
sobes.tech IA
Resposta da IA
No Go, as goroutines são threads leves geridos pelo runtime do Go. Ao criar uma goroutine, uma pequena pilha de memória (normalmente cerca de 2 KB) é alocada, que pode crescer e diminuir dinamicamente conforme necessário. Isso permite usar a memória de forma eficiente, pois a pilha não é fixa e ajusta-se à carga.
A gestão de memória é feita pelo scheduler do Go, que distribui as goroutines pelos threads do sistema. A pilha da goroutine fica no heap, e o garbage collector libera automaticamente a memória não utilizada.
Exemplo de criação de uma goroutine:
func sayHello() {
fmt.Println("Olá da goroutine")
}
func main() {
go sayHello() // inicia a goroutine
time.Sleep(time.Second) // espera para que a goroutine execute
}
Assim, o Go oculta do desenvolvedor os detalhes da gestão de memória das goroutines, garantindo simplicidade e eficiência na execução paralela.