Sobes.tech
Junior — Middle

Cum sunt implementate și gestionate goroutine-urile în limbajul Go?

sobes.tech AI

Răspuns de la AI

Gorutinele în Go sunt fire de execuție ușoare gestionate de runtime-ul Go, nu de sistemul de operare. Ele permit scrierea de cod concurent cu resurse minime.

Aspecte cheie ale implementării și gestionării gorutinelor:

  • Creare: O gorutină este inițiată cu cuvântul cheie go înainte de apelarea unei funcții.
  • Planificator: Runtime-ul Go are propriul său planificator, care distribuie gorutinele între firele de sistem (planificare M:N).
  • Stivă: Fiecare gorutină are o stivă dinamică, care poate crește sau scade după nevoie, începând cu câțiva kilobyte.
  • Comunicare: Se folosesc canale pentru sincronizare și schimb de date între gorutine.

Exemplu de creare a unei gorutine:

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

func main() {
    go sayHello() // pornește gorutina
    time.Sleep(time.Second) // așteaptă pentru ca gorutina să se execute
}

Astfel, gorutinele sunt o metodă eficientă de a executa cod în paralel cu costuri minime.