Junior — Middle
Tudsz példákat vagy helyzeteket mondani, amelyekben a kontextus fogalma használatos?
sobes.tech MI
Válasz az MI-től
A Go nyelvben a kontextus (context.Context) fogalma az operációk életciklusának kezelésére, a megszakításokra, időkorlátokra és az értékek átadására szolgál gorutinek között.
Fő felhasználási esetek:
- Műveletek megszakítása: például hálózati kéréseknél vagy adatbázisoknál hosszú műveletet lehet megszakítani, ha a kliens megszakítja a kérést.
- Időkorlátok és timeoutok: beállítható egy maximális végrehajtási idő, amely után automatikusan megszakad a művelet.
- Értékek átadása: például kérésazonosítók, hitelesítési tokenek, metaadatok, amelyek különböző szinteken szükségesek.
Példa:
func HandleRequest(ctx context.Context) {
select {
case <-time.After(5 * time.Second):
// Munka végrehajtása
case <-ctx.Done():
// Művelet megszakítva vagy időkorlát elérve
return
}
}
A kontextus segít írni kezelhetőbb és gyorsabban reagáló kódot, különösen több szálon futó és hálózati alkalmazásokban.