Sobes.tech
Senior

Como funciona o runtime na linguagem Go?

sobes.tech IA

Resposta da IA

O runtime na linguagem Go é um conjunto de componentes que garantem a execução de programas Go, incluindo:

  • Agendador de goroutines (scheduler): gerencia threads leves — goroutines, distribuindo sua execução em threads do sistema (planeamento M:N).
  • Goroutines: threads leves criados rapidamente e que consomem pouca memória.
  • Coletor de lixo (garbage collector): gestão automática de memória que libera objetos não utilizados.
  • Gerenciador de memória: aloca e libera memória para objetos.
  • Meios de sincronização: canais e mutex para comunicação e sincronização entre goroutines.

Exemplo de criação de uma goroutine:

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

func main() {
    go sayHello() // iniciar goroutine
    time.Sleep(time.Second) // aguardar término
}

Assim, o runtime Go garante execução paralela eficiente e gestão de recursos sem necessidade de gestão manual de threads.