Junior — Middle
Sistemdə uşaq kontekstlərinin istifadəsinin hansı üstünlükləri və funksiyaları var?
sobes.tech Süni İntellekt
AI-dan cavab
Go-da, kiçik kontekstlər context.WithCancel, context.WithTimeout və ya context.WithDeadline funksiyaları ilə yaradılır və aşağıdakı üstünlükləri təmin edir:
- Həyat dövrünün idarə olunması: Əsas kontekst ləğv olunduqda və ya vaxt keçdikdə əməliyyatları ləğv etməyə və resursları azad etməyə imkan verir.
- Ləğv siqnallarının ötürülməsi: Bütün kiçik kontekstlər əsas kontekstdən ləğv siqnalı alır, bu da goroutine-lərin koordinasiyasını sadələşdirir.
- Dəyərlərin ötürülməsi: Kontekstlər, kiçik kontekstlər üçün əlçatan olan dəyərləri ehtiva edə bilər, bu da parametrlərin və tənzimləmələrin ötürülməsi üçün faydalıdır.
Nümunə:
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
// ctx-ni 5 saniyə ərzində və ya ləğv etdikdə sona çatacaq goroutine-ə ötürürük