Sobes.tech
Senior

Co je to goroutine? Proč se jí říká lehká? Jaká je počáteční velikost paměti goroutine a jaká je maximální?

sobes.tech AI

Odpověď od AI

Goroutine je lehký vlákno provádění v jazyce Go, implementované na úrovni runtime a nikoliv operačního systému. Umožňuje spouštět funkce paralelně s minimální režii.

Nazývá se lehké, protože na rozdíl od systémových vláken, gorutiny zabírají velmi málo paměti a jsou rychle vytvářeny. Toho je dosaženo dynamickým řízením zásobníku a plánovačem na úrovni Go.

Počáteční velikost zásobníku gorutiny je obvykle kolem 2 KB (v raných verzích Go 4 KB), ale zásobník může dynamicky růst a zmenšovat se podle potřeb, dosahujíc maxima několika megabajtů (obvykle až 1 GB, i když v praxi je tak velký zásobník zřídka potřeba). Tento přístup umožňuje spouštět tisíce a dokonce miliony gorutin současně bez významných nákladů na paměť.