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
}