Junior — Middle
Можете ли објаснити концепт лаких нитова и њихову разлику од обичних нитова?
sobes.tech АИ
Одговор од АИ
Lagana nit (goroutines u Go) je apstrakcija za paralelno izvršavanje koda, koja je lakša i efikasnija u resursima od običnih sistemskih niti.
Razlike:
- Resursi: goroutines zauzimaju mnogo manje memorije (obično nekoliko kilobajta), dok sistemska nit zahteva mnogo više (obično megabajte).
- Planiranje: goroutines se planiraju od strane Go planera unutar procesa, a ne od operativnog sistema, što omogućava brzo prebacivanje između njih.
- Kreiranje: pokretanje goroutine je veoma brzo i jeftino, može se kreirati hiljade ili čak milioni istovremeno.
Primer kreiranja goroutine:
func sayHello() {
fmt.Println("Zdravo iz goroutine")
}
func main() {
go sayHello() // pokreće funkciju u posebnoj goroutine
time.Sleep(time.Second) // čeka da goroutine završi
}
Na ovaj način, lagane niti omogućavaju efikasno korišćenje paralelizma bez velikih troškova.