Junior — Middle
Նկարագրեք իրավիճակ, որտեղ կոնտեքստերի օգտագործումը արդարացված և արդյունավետ կլինի։
sobes.tech AI
Պատասխան AI-ից
Go-յի մեջ, կոնտեքստները (context.Context) օգտագործվում են գործողությունների կյանքի տևողությունը կառավարելու համար, հատկապես ասինխրոն կամ ցանցային կանչերում: Օրինակ, եթե لديك HTTP սերվեր, որը մշակվում է հարցումները, և ցանկանում եք չեղարկել մշակումը, եթե հաճախորդը կապը կտրի կամ սպասման ժամանակը գերազանցի սահմանը, ապա կոնտեքստի օգտագործումը կլինի նպատակահարմար:
Օրինակ:
func handler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
select {
case <-time.After(5 * time.Second):
fmt.Fprintln(w, "Մշակումը ավարտվեց")
case <-ctx.Done():
err := ctx.Err()
fmt.Println("Հարցումը չեղարկվեց կամ ժամանակային սահմանը լրացավ:", err)
}
}
Այստեղ կոնտեքստը թույլ է տալիս չեղարկել երկարատև գործողությունը, եթե հաճախորդը կապը կտրի կամ ժամանակը լրանա, ինչը խնայում է ռեսուրսները և բարելավում է հավելվածի արձագանքման արագությունը։