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.