Junior — Middle
Kako se vrši alokacija i upravljanje memorijom prilikom korišćenja gorutina u jeziku Go?
sobes.tech АИ
Одговор од АИ
U Go, goroutine-ji su lagani niti koje upravlja runtime Go-a. Prilikom kreiranja goroutine, dodeljuje se mala stog memorije (obično oko 2 KB), koji se može dinamički povećavati i smanjivati po potrebi. Ovo omogućava efikasno korišćenje memorije, jer stog nije fiksan i prilagođava se opterećenju.
Upravljanje memorijom vrši se putem planera Go, koji raspoređuje goroutine-ove na sistemske niti. Stog goroutine-a nalazi se na hrpi, a sakupljač smeća automatski oslobađa neiskorišćenu memoriju.
Primer kreiranja goroutine:
func sayHello() {
fmt.Println("Zdravo iz goroutine")
}
func main() {
go sayHello() // pokreće goroutine
time.Sleep(time.Second) // čeka da goroutine završi
}
Na ovaj način, Go skriva od programera detalje upravljanja memorijom goroutine-ova, obezbeđujući jednostavnost i efikasnost paralelnog izvršavanja.