Sobes.tech
Junior — Middle

Kokiose situacijose įvyksta automatinis vykdymo perjungimas naudojant goroutines?

sobes.tech AI

Atsakymas iš AI

Go automatinis vykdymo perjungimas tarp gorutinių įvyksta šiose situacijose:

  • Kai gorutina iškviečia funkciją, kuri blokuoja vykdymą, pavyzdžiui, skaityti iš kanalo, rašyti į kanalą arba sisteminį iškvietimą, kuris blokuoja srautą.
  • Kai iškviečiama funkcija runtime.Gosched(), kuri aiškiai perduoda kontrolę planuotojui, kad pereitų prie kitos gorutinos.
  • Kai gorutina baigia darbą, planuotojas pereina prie kitos paruoštos vykdyti gorutinos.

Go vykdymo laiko planuotojas turi planuotoją, kuris paskirsto gorutinos vykdymą prieinamose sistemos srautų (M). Perjungimas vyksta automatiškai, siekiant efektyviai naudoti CPU ir neleisti visai programai blokuotis laukiant įvesties/išvesties ar sinchronizacijos operacijų.