Sobes.tech
Junior — Middle

Puteți explica cum se implementează conceptul de context în sistemele software?

sobes.tech AI

Răspuns de la AI

În Go, conceptul de context este implementat prin pachetul context, care permite transmiterea informațiilor despre starea de execuție, timeout-uri, anulări și termene între goroutine-uri și funcții.

Contextul este folosit pentru a controla ciclul de viață al operațiunilor, în special în sarcini de rețea sau de durată lungă. Ajută la anularea operațiunilor dacă, de exemplu, clientul întrerupe solicitarea sau timpul de așteptare expiră.

Exemplu de utilizare:

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

select {
case <-doSomeWork(ctx):
    fmt.Println("Lucru finalizat")
case <-ctx.Done():
    fmt.Println("Anulare sau timeout:", ctx.Err())
}

Aici, ctx este transmis funcțiilor care pot verifica ctx.Done() pentru a anula în timp util lucrarea. Acest lucru ajută la scrierea unui cod mai gestionabil și receptiv.