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.