Sobes.tech
Junior — Middle

V ktorých prípadoch jedna gorutina ukončí vykonávanie a odovzdá riadenie inej?

sobes.tech AI

Odpoveď od AI

V Go, gorutina ukončuje vykonávanie a prenáša riadenie na inú gorutinu v nasledujúcich prípadoch:

  • Keď gorutina výslovne volá funkciu, ktorá ju blokuje (napríklad čítanie z prázdneho kanála).
  • Pri použití kľúčového slova runtime.Gosched(), ktoré dobrovoľne odovzdáva procesor iným gorutinám.
  • Keď gorutina ukončí svoju funkciu (vráti sa z funkcie), prestáva sa vykonávať.

Plánovač gorutín v Go automaticky prepína medzi gorutinami, zabezpečujúc konkurencieschopnosť. Napríklad, pri blokovaní na operáciách vstupu/výstupu alebo pri čakaní na dáta z kanála, aktuálna gorutina je pozastavená a riadenie je prevedené na inú.