Sobes.tech
Junior — Middle

Quali funzioni e capacità aggiuntive sono state integrate nei metodi di contesto con l'apparizione di Go 1.21?

sobes.tech AI

Risposta dell'AI

In Go 1.21, sono state introdotte migliorie al pacchetto context che estendono le capacità di gestione del contesto:

  • Il supporto per cancellazioni con timeout e deadline è diventato più flessibile.
  • Sono state aggiunte nuove funzioni per combinare più contesti in modo conveniente.
  • Sono state migliorate le prestazioni e ridotto il consumo di memoria durante l'uso dei contesti.

Ad esempio, ora è possibile creare contesti che si annullano automaticamente al soddisfacimento di più condizioni, semplificando la gestione del ciclo di vita delle operazioni:

ctx1, cancel1 := context.WithCancel(context.Background())
ctx2, cancel2 := context.WithTimeout(context.Background(), time.Second*10)

ctx := context.Merge(ctx1, ctx2) // funzione ipotetica per unire

// Usare ctx in richieste o goroutine

// Annullare entrambi i contesti
cancel1()
cancel2()

(Nota che la sintassi esatta e le funzioni possono variare, poiché le nuove funzionalità dipendono dall'implementazione specifica in Go 1.21.)