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
}