Junior — Middle
Əməliyyat sistemi planlayıcısı mütləq şəkildə goroutine-in icrasını dayandırırmı?
sobes.tech Süni İntellekt
AI-dan cavab
Xeyr, əməliyyat sisteminin planlayıcısı Go-da goroutine-in icrasını məcburən dayandırmır. Goroutine-lər, əməliyyat sistemindən birbaşa deyil, Go-nun çalışma vaxtı tərəfindən idarə olunan yüngül axınlardır.
Go çalışma vaxtı, goroutine-lərin icrasını özləri sistem axınlarında (M:N planlaşdırma) planlaşdırır. Goroutine-lər aşağıdakı hallarda dayandırıla və yenidən başlana bilər:
- Goroutine giriş-çıxış gözləyirsə və ya sinxronizasiya zamanı bloklanıbsa.
- Goroutine açıq şəkildə idarəni təhvil verirsə (məsələn,
runtime.Gosched()çağırışı ilə). - İş yükünü axınlar arasında balanslaşdırmaq lazım gəlsə.
Beləliklə, goroutine-lər arasında keçid kooperativ şəkildə və Go-nun çalışma vaxtının idarəsi altında baş verir, əməliyyat sistemi tərəfindən məcburən deyil.