Junior — Middle
Jak probíhá alokace a správa paměti při použití gorutin v jazyce Go?
sobes.tech AI
Odpověď od AI
V Go jsou gorutiny lehké vlákna spravovaná běhovým prostředím Go. Při vytváření gorutiny je přidělen malý zásobník paměti (obvykle kolem 2 KB), který se může dynamicky zvětšovat a zmenšovat podle potřeby. To umožňuje efektivní využití paměti, protože zásobník není pevný a přizpůsobuje se zátěži.
Správa paměti probíhá prostřednictvím plánovače Go, který rozděluje gorutiny na systémové vlákna. Zásobník gorutiny je umístěn na haldě a garbage collector automaticky uvolňuje nepoužívanou paměť.
Příklad vytvoření gorutiny:
func sayHello() {
fmt.Println("Ahoj z gorutiny")
}
func main() {
go sayHello() // spouští gorutinu
time.Sleep(time.Second) // čeká, aby gorutina mohla doběhnout
}
Tímto způsobem Go skrývá před vývojářem detaily správy paměti gorutin, zajišťuje jednoduchost a efektivitu paralelního provádění.