Sobes.tech
Junior — Middle

Cum este implementată și gestionată munca mai multor goroutines în aplicație?

sobes.tech AI

Răspuns de la AI

În Go, goroutine-urile sunt fire ușoare gestionate de runtime-ul Go, nu de sistemul de operare. Când o aplicație creează multe goroutine-uri, runtime-ul Go le programează pentru execuție pe un număr limitat de fire de sistem (M), folosind modelul M:N (M fire de sistem pentru N goroutine-uri).

Planificatorul Go distribuie goroutine-urile între fire, schimbând contextul foarte rapid și eficient. Acest lucru permite rularea a mii și chiar milioane de goroutine-uri cu costuri reduse de memorie și timp.

Exemplu de creare a unei goroutine:

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

func main() {
    go sayHello() // pornește goroutine-ul
    time.Sleep(time.Second) // oferă timp goroutine-ului să ruleze
}