Sobes.tech
Junior — Middle

Ar būtina Go kalbant automatiškai keisti vykdymo kontekstą tarp gorutinų?

sobes.tech AI

Atsakymas iš AI

Go kalboje automatinis konteksto keitimas tarp gorutinių įvyksta, tačiau ne klasikine preemptive multitasking prasme, kaip operacinėse sistemose.

Gorutinos yra lengvi siūlai, valdomi Go vykdymo laiko. Go planuotojas keičia vykdymą tarp gorutinų, kad efektyviai naudotų sisteminius siūlus.

Savybės:

  • Go planuotojas naudoja kooperatyvinį daugiaprocesinį vykdymą: gorutina turi perduoti kontrolę, pavyzdžiui, kviesdama blokuojančias operacijas ar funkcijas, kurios aiškiai daro yield.
  • Nuo Go 1.14 versijos pridėta ribota preemption palaikymas, leidžiantis planuotojui nutraukti gorutina, jei ji ilgai neperduoda kontrolės.

Taip, konteksto keitimas tarp gorutinų vyksta automatiškai ir yra skaidrus kūrėjui, tačiau su tam tikromis savybėmis, kurios skiriasi nuo klasikinių operacinių sistemų.