Sobes.tech
Senior

Čo je gorutina? Prečo sa nazýva ľahká? Aká je počiatočná veľkosť pamäte gorutiny a aká je maximálna?

sobes.tech AI

Odpoveď od AI

Goroutine je ľahký vlákno vykonávania v jazyku Go, implementované na úrovni runtime a nie operačným systémom. Umožňuje vykonávať funkcie paralelne s minimálnymi nákladmi.

Nazýva sa ľahké, pretože na rozdiel od systémových vlákien, goroutine-ky zaberajú veľmi málo pamäte a sú rýchlo vytvárané. Toho sa dosahuje dynamickým riadením zásobníka a plánovača na úrovni Go.

Počiatočná veľkosť zásobníka goroutine je zvyčajne okolo 2 KB (v starších verziách Go — 4 KB), ale zásobník môže dynamicky rásť a zmenšovať sa podľa potrieb, dosahujúc maximum niekoľkých megabajtov (zvyčajne až 1 GB, hoci v praxi je taký veľký zásobník zriedka potrebný). Tento prístup umožňuje spúšťanie tisícov a dokonca miliónov goroutine súčasne bez významných nákladov na pamäť.