Sobes.tech
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.