Sobes.tech
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.