Sobes.tech
Junior — Middle

არის აუცილებელი, რომ Go-ში ავტომატურად შეიცვალოს შესრულების კონტექსტი goroutine-ებს შორის?

sobes.tech AI

პასუხი AI-სგან

Go dilində, 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çacıqları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: gorutina, 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 gorutina'ları 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.