Sobes.tech
Senior

Hai usato i contesti nella pratica? Raccontami.

sobes.tech AI

Risposta dell'AI

Sì, ho utilizzato regolarmente i contesti in Go, soprattutto per gestire il tempo di esecuzione e annullare le operazioni nelle richieste di rete e nelle goroutine. Il contesto consente di trasmettere segnali di annullamento e limiti di tempo attraverso la catena di chiamate, aiutando a evitare perdite di goroutine e a controllare il tempo di esecuzione.

Esempio di utilizzo:

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

select {
case <-time.After(3 * time.Second):
    fmt.Println("operazione completata")
case <-ctx.Done():
    fmt.Println("operazione annullata o scaduta")
}

In questo modo, se l'operazione richiede più di 2 secondi, verrà interrotta, migliorando la robustezza e la reattività dell'applicazione.