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