Sobes.tech
Junior — Middle

Je možné nútene zmeniť aktuálny aktívny kontext vykonávania?

sobes.tech AI

Odpoveď od AI

V Go (Golang) sa kontext (context.Context) sa používá na správu životnosti operácií, prenos signálov zrušenia a časových limitov.

Aktuálny aktívny kontext sa zvyčajne explicitne prenáša funkciám ako parameter. Go ne poskytuje zabudovaný mechanizmus na globálnu alebo vynútenú zmenu aktuálneho aktívneho kontextu, pretože kontext musí byť explicitne prenesený a kontrolovaný volajúcim kódom.

Ak je potrebné zmeniť kontext, zvyčajne sa vytvorí nový (napríklad s zrušením alebo časovým limitom) a prenáša sa ďalej v reťazci volaní.

Príklad vytvorenia a prenesenia kontextu:

ctx, cancel := context.WithCancel(parentCtx)
// ...
cancel() // zrušiť kontext
// preniesť ctx do funkcií

Preto nie je možné vynútiť zmenu aktuálneho aktívneho kontextu — kontext sa explicitne prenáša a kontroluje na úrovni volaní.