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.