Sobes.tech
Junior — Middle

Koje su prednosti korišćenja gorutina u poređenju sa sistemskim nitima za poboljšanje performansi aplikacija?

sobes.tech АИ

Одговор од АИ

Gorutine u Go-u imaju nekoliko prednosti u odnosu na sistemske niti:

  • Lagana težina: gorutine zauzimaju mnogo manje memorije (obično nekoliko kilobajta), dok sistemske niti zahtevaju znatno više resursa.
  • Skalabilnost: moguće je pokrenuti hiljade ili čak miliona gorutina istovremeno, što je teško sa nitima.
  • Brza promena konteksta: planer Go efikasno upravlja gorutinama i prebacuje između njih brže nego operativni sistem između niti.
  • Jednostavnost sinhronizacije: ugrađeni kanali i drugi primitivi olakšavaju razmenu podataka između gorutina.

Primer kreiranja gorutine:

package main
import (
    "fmt"
    "time"
)

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

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