Junior — Middle
Quali vantaggi e funzioni offre l'uso di contesti figli nel sistema?
sobes.tech AI
Risposta dell'AI
In Go, i contesti figli vengono creati utilizzando le funzioni context.WithCancel, context.WithTimeout o context.WithDeadline e offrono i seguenti vantaggi:
- Gestione del ciclo di vita: Consentono di annullare le operazioni e liberare risorse quando il contesto genitore viene annullato o scade il timeout.
- Trasmissione di segnali di annullamento: Tutti i contesti figli ricevono il segnale di annullamento dal contesto genitore, semplificando la coordinazione delle goroutine.
- Trasmissione di valori: I contesti possono contenere valori accessibili ai contesti figli, utile per passare parametri e configurazioni.
Esempio:
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
// passa ctx a una goroutine che terminerà in 5 secondi o al cancelamento