Junior — Middle
Koja je razlika između gorutine i sistemskog niti u kontekstu izvršavanja zadataka?
sobes.tech АИ
Одговор од АИ
Gorutina je lagana jedinica za izvršavanje koju upravlja okruženje za izvršavanje Go (runtime), koja koristi vrlo malo memorije i može se pokrenuti u velikom broju istovremeno. Sistemska nit (thread) je težija jedinica planiranja operativnog sistema.
Glavne razlike:
- Gorutine su znatno lakše u resursima od sistemskih niti.
- Planiranje gorutina se dešava unutar Go runtime-a, a ne od strane OS-a.
- Hiljade gorutina mogu raditi istovremeno, dok je broj sistemskih niti obično manji zbog troškova kreiranja i prebacivanja.
Primer kreiranja gorutine:
func zadatak() {
fmt.Println("Izvršavanje zadatka")
}
func main() {
go zadatak() // pokretanje gorutine
time.Sleep(time.Second) // čekamo da gorutina završi
}
Na ovaj način, gorutine omogućavaju efikasno izvršavanje mnogih zadataka paralelno sa manjim troškovima.