Sobes.tech
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.