Sobes.tech
Junior — Middle

Jakie dodatkowe funkcje i możliwości zostały wprowadzone do metod kontekstowych wraz z pojawieniem się Go 1.21?

sobes.tech AI

Odpowiedź od AI

W Go 1.21 dodano ulepszenia w pakiecie context, które rozszerzają możliwości zarządzania kontekstem:

  • Obsługa anulowania z timeoutem i limitem czasowym stała się bardziej elastyczna.
  • Dodano nowe funkcje do wygodnego łączenia wielu kontekstów.
  • Ulepszono wydajność i zmniejszono zużycie pamięci podczas pracy z kontekstami.

Na przykład, teraz można tworzyć konteksty, które automatycznie się anulują po spełnieniu kilku warunków, co upraszcza zarządzanie cyklem życia operacji:

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

ctx := context.Merge(ctx1, ctx2) // hipotetyczna funkcja do łączenia

// Używaj ctx w żądaniach lub gorutynach

// Anuluj oba konteksty
cancel1()
cancel2()

(Uwaga: dokładna składnia i funkcje mogą się różnić, ponieważ nowe możliwości zależą od konkretnej implementacji w Go 1.21.)