Sobes.tech
Senior

Cum funcționează runtime-ul în limbajul Go?

sobes.tech AI

Răspuns de la AI

Runtime în limbajul Go este un set de componente care asigură executarea programelor Go, incluzând:

  • Planificator de goroutines (scheduler): gestionează firele ușoare — goroutines, distribuindu-le execuția pe fire de sistem (planificare M:N).
  • Goroutines: fire ușoare create rapid și care consumă puțină memorie.
  • Colector de gunoi (garbage collector): gestionare automată a memoriei, eliberând obiectele neutilizate.
  • Manager de memorie: alocă și eliberează memorie pentru obiecte.
  • Mijloace de sincronizare: canale și mutexuri pentru comunicare și sincronizare între goroutines.

Exemplu de creare a unei goroutine:

func sayHello() {
    fmt.Println("Salut din goroutine")
}

func main() {
    go sayHello() // pornire goroutine
    time.Sleep(time.Second) // așteptare finalizare
}

Astfel, runtime-ul Go asigură o execuție paralelă eficientă și gestionarea resurselor fără a fi nevoie de gestionare manuală a firelor.