Sobes.tech
Junior — Middle

Poți enumera diferite scenarii de utilizare a contextului în programare sau arhitectură de sisteme?

sobes.tech AI

Răspuns de la AI

În Go, context este utilizat pentru a transmite informații despre starea de execuție, pentru a anula operațiuni și pentru a stabili limite de timp între goroutine-uri și funcții. Principalele scenarii de utilizare ale contextului:

  • Anularea operațiunilor: permite anularea operațiunilor lungi sau blocante, de exemplu, la închiderea unui server sau anularea unei solicitări.
  • Transmiterea limitelor de timp: se poate seta un timp după care operațiunea trebuie să fie întreruptă.
  • Transmiterea valorilor: contextul poate conține perechi cheie-valoare, precum identificatori de solicitări, token-uri de autentificare.
  • Sincronizare: ajută la coordonarea muncii mai multor goroutine-uri pentru a se termina corect.

Exemplu de utilizare:

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

// transmitem ctx către o funcție care poate fi întreruptă de timeout
result, err := doSomething(ctx)

Astfel, context ajută la gestionarea ciclului de viață al operațiunilor și la transmiterea metadatelor.