Sobes.tech
Senior

Mi az a goroutine? Miért nevezik könnyűnek? Mekkora a goroutine kezdeti memória mérete és mi a maximális?

sobes.tech MI

Válasz az MI-től

A goroutine egy könnyű végrehajtási szál a Go nyelvben, amely a futásidejű szinten valósul meg, nem az operációs rendszer szintjén. Lehetővé teszi funkciók párhuzamos végrehajtását minimális többletköltséggel.

Ezt könnyűnek nevezik, mert ellentétben a rendszer szálakkal, a goroutine-ok nagyon kevés memóriát foglalnak, és gyorsan létrehozhatók. Ez a dinamikus veremkezelés és a Go szintű ütemező révén érhető el.

Egy goroutine kezdeti veremmérete általában körülbelül 2 KB (régebbi Go verziókban 4 KB), de a verem dinamikusan növekedhet és csökkenhet az igények szerint, elérve több megabájt maximális méretet (általában 1 GB-ig, bár a gyakorlatban ritkán van szükség ilyen nagy veremre). Ez a megközelítés lehetővé teszi ezer és akár millió goroutine egyidejű futtatását jelentős memória költségek nélkül.