Sobes.tech
Junior — Middle

Goroutinlardan istifadə zamanı avtomatik icra keçidinin baş verdiyi hallar hansılardır?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da, avtomatik icra keçidi aşağıdakı vəziyyətlərdə baş verir:

  • Goroutine funksiyanı çağıranda, bu funksiya icraatı bloklayırsa, məsələn, kanaldan oxuma, kanala yazma və ya bloklayan sistem çağırışı.
  • runtime.Gosched() funksiyasını çağıranda, bu açıq şəkildə planlayıcıya idarəni verir və başqa goroutine-ə keçməyə imkan verir.
  • Goroutine tamamlandıqda, planlayıcı başqa hazır goroutine-ə keçir.

Go çalışma vaxtı planlayıcısı mövcuddur və o, goroutine-lərin icrasını mövcud sistem axınlarına (M) paylayır. Keçid avtomatik olaraq baş verir ki, CPU səmərəli istifadə olunsun və giriş/çıxış və ya sinxronizasiya əməliyyatlarını gözləyərkən bütün proqramın icrası bloklanmasın.