Sobes.tech
Junior — Middle

Šta čini goroutine efikasnijim u poređenju sa tradicionalnim nitima?

sobes.tech АИ

Одговор од АИ

Gorutine u Go-u su efikasnije u poređenju sa tradicionalnim nitima zahvaljujući nekoliko ključnih karakteristika:

  • Lagana težina: Gorutine zauzimaju vrlo malo memorije (obično oko 2 KB steka), dok sistemske niti zahtevaju mnogo više memorije.
  • Planer na nivou jezika: Go ima sopstveni planer gorutina koji efikasno raspoređuje njihovo izvršavanje na sistemske niti, omogućavajući pokretanje hiljada gorutina istovremeno bez značajnih troškova.
  • Brzo kreiranje i prebacivanje konteksta: Kreiranje i prebacivanje između gorutina je mnogo brže nego između OS niti, što smanjuje troškove multitaskinga.

Primer kreiranja gorutine:

func sayHello() {
    fmt.Println("Zdravo iz gorutine")
}

func main() {
    go sayHello() // pokretanje gorutine
    time.Sleep(time.Second) // čekamo da gorutina završi
}