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.