Junior — Middle
Go-da, goroutine'lar arasında avtomatik icra kontekstinin dəyişməsi məcburidirmi?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da, goroutine-lər arasında avtomatik kontekst dəyişimi baş verir, amma bu, əməliyyat sistemlərindəki klassik preemptive multitasking mənasında deyil.
Goroutine-lər, Go vaxt idarəetməsi tərəfindən idarə olunan yüngül iş parçacqlarıdır. Go planlayıcısı, sistem iş parçacqlarını səmərəli istifadə etmək üçün goroutine-lər arasında icrağı dəyişir.
Xüsusiyyətlər:
- Go planlayıcısı kooperativ çoxlu tapşırıq istifadə edir: goroutine, məsələn, bloklayıcı əməliyyatlar və ya explicit yield edən funksiyalar çağırıldıqda, idarəni tərk etməlidir.
- Go 1.14 versiyasından etibarən, məhdud preemption dəstəyi əlavə olunmuşdur, bu da planlayıcının uzun müddət idarəni tərk etməyən goroutine-u dayandırmasına imkan verir.
Beləliklə, goroutine-lər arasında kontekst dəyişimi avtomatik və inkişaf etdirici üçün şəffafdır, lakin bəzi xüsusiyyətlər klassik əməliyyat sistemlərindən fərqlidir.