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
}