Sobes.tech
Junior — Middle

Sistemdə uşaq kontekstlərinin istifadəsinin məqsədi nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində, uşaq kontekstləri (child contexts) valideyn kontekstlərindən context.WithCancel, context.WithTimeout və ya context.WithDeadline funksiyaları vasitəsilə yaradılır. Uşaq kontekstlərinin istifadəsinin məqsədi:

  • Əməliyyatların həyat müddətinin idarə olunması: uşaq konteksti valideynindən müstəqil şəkildə ləğv oluna bilər, bu da müəyyən tapşırıqların icrasını nəzarətdə saxlamağa imkan verir.
  • Ləğv siqnallarının ötürülməsi: əgər valideyn konteksti ləğv olunarsa, bütün uşaq kontekstləri də ləğv olunur, bu da əlaqəli əməliyyatların zəncirvari şəkildə tamamlanmasını təmin edir.
  • Məhdudiyyətlərin əlavə olunması: məsələn, valideyn kontekstini dəyişmədən uşaq konteksti üçün vaxt limiti və ya son tarix təyin etmək.

Nümunə:

ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
// ctx — 5 saniyəlik vaxt limiti olan uşaq konteksti

go func(ctx context.Context) {
    select {
    case <-time.After(10 * time.Second):
        fmt.Println("Əməliyyat tamamlandı")
    case <-ctx.Done():
        fmt.Println("Əməliyyat ləğv olundu və ya vaxt keçdi")
    }
}(ctx)

// cancel() çağırılaraq uşaq konteksti əl ilə ləğv oluna bilər

Bu şəkildə, uşaq kontekstləri tapşırıqların hiyerarşisində əməliyyatların həyat müddətini və ləğv edilməsini elastik şəkildə idarə etməyə imkan verir.