Sobes.tech
Junior — Middle

Hansı hallarda bir goroutine icra etməyi dayandırır və idarəetməni başqa birinə keçirir?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da, goroutine aşağıdakı hallarda icra etməyi dayandırır və idarəetməni başqa bir goroutine-ə keçirir:

  • Goroutine açıq şəkildə onu bloklayan funksiyanı çağırdıqda (məsələn, boş kanaldan oxuma).
  • runtime.Gosched() açar sözündən istifadə etdikdə, bu könüllü olaraq prosessoru digər goroutine-lərə verir.
  • Goroutine funksiyasını tamamladıqda (funksiyadan geri dönəndə), o, icra etməyi dayandırır.

Go planlayıcısı avtomatik olaraq goroutine-lər arasında keçid edir, çoxluq vəzifəsini təmin edir. Məsələn, giriş/çıxış əməliyyatlarında və ya kanaldan məlumat gözləyərkən, cari goroutine dayandırılır və idarəetmə başqa birinə keçir.