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