Junior — Middle
Можеш ли да набројиш различите сценарије коришћења контекста у програмирању или архитектури система?
sobes.tech АИ
Одговор од АИ
U Go programskom jeziku, context se koristi za prenošenje informacija o stanju izvršavanja, za otkazivanje operacija i za postavljanje vremenskih ograničenja između gorutina i funkcija. Glavni scenariji korišćenja konteksta:
- Otkazivanje operacija: omogućava otkazivanje dugotrajnih ili blokirajućih operacija, na primer, pri zatvaranju servera ili otkazivanju zahteva.
- Prenos vremenskih ograničenja: može se postaviti vreme nakon kojeg operacija treba biti prekinuta.
- Prenos vrednosti: kontekst može sadržati parove ključ-vrednost, na primer, identifikatore zahteva, tokene za autentifikaciju.
- Sinhronizacija: pomaže u koordinaciji rada više gorutina kako bi se one pravilno završile.
Primer upotrebe:
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
// prosleđujemo ctx funkciji koja može biti prekinuta zbog timeout-a
result, err := doSomething(ctx)
Na ovaj način, context pomaže u upravljanju životnim ciklusom operacija i prenošenju metapodataka.