Sobes.tech
Middle+

Čo je gorutina? Čím sa líši od vlákna OS? Kto spravuje gorutiny?

sobes.tech AI

Odpoveď od AI

Goroutine je ľahký vlákno na vykonávanie v jazyku Go, spravované prostredím runtime Go a nie operačným systémom. Na rozdiel od vlákien OS, goroutine zaberajú oveľa menej pamäte (zvyčajne niekoľko kilobajtov zásobníka, ktorý sa môže dynamicky zväčšovať a zmenšovať), a ich vytváranie a prepínanie je oveľa lacnejšie z hľadiska zdrojov.

Hlavné rozdiely od vlákien OS:

  • Goroutine sú plánované a spravované prostredím runtime Go, nie OS.
  • V jednom procese môže byť tisíce alebo desaťtisíce goroutine bez významnej záťaže.
  • Prechod medzi goroutine je rýchlejší, pretože nevyžaduje prepínanie jadra.

Správa goroutine je zabezpečená prostredím runtime Go, ktoré obsahuje vlastný plánovač (M:N scheduler), ktorý mapuje mnoho goroutine (G) na menší počet vlákien OS (M). To umožňuje efektívne využívanie systémových zdrojov a zjednodušuje paralelné programovanie.