Sobes.tech
Junior — Middle

Milyen elemeket lehet beilleszteni a program aktuális végrehajtási kontextusába?

sobes.tech MI

Válasz az MI-től

A Go (Golang) program aktuális végrehajtási kontextusát általában a context.Context típus képviseli. Ezt az adatok átadására használják a végrehajtás állapotáról, a műveletek megszakításáról és az időkorlátokról a goroutine-ok között.

A kontextus a következő elemeket tartalmazhatja:

  • Megerősítés (Cancellation) — jelzés arra, hogy egy műveletet meg kell szakítani.
  • Határidő (Deadline) — az időpont, amikor a művelet lejártnak számít.
  • Értékek (Values) — kulcs-érték párok az extra információk továbbítására (pl. kérésazonosítók, hitelesítési tokenek).

Használati példa:

ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()

ctx = context.WithValue(ctx, "requestID", "12345")

// A ctx-t át lehet adni olyan függvényeknek, amelyek ellenőrizhetik a megszakítást, a határidőt vagy hozzáférhetnek az értékekhez

Így a kontextus metaadatokat tartalmaz, és irányítja a programban végrehajtott műveletek életciklusát.