Sobes.tech
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í.