Sobes.tech
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