Junior — Middle
Какви допълнителни функции и възможности бяха внедрени в методите на контекста с появата на Go 1.21?
sobes.tech AI
Отговор от AI
В Go 1.21 бяха добавени подобрения в пакета context, които разширяват възможностите за управление на контекста:
- Поддръжката за анулиране с таймаут и дедлайн стана по-гъвкава.
- Добавени са нови функции за удобно обединяване на няколко контекста.
- Подобрена е производителността и е намалена консумацията на памет при работа с контексти.
Например, сега е възможно да създавате контексти, които автоматично се анулират при изпълнение на няколко условия, което улеснява управлението на жизнения цикъл на операциите:
ctx1, cancel1 := context.WithCancel(context.Background())
ctx2, cancel2 := context.WithTimeout(context.Background(), time.Second*10)
ctx := context.Merge(ctx1, ctx2) // хипотетична функция за обединяване
// Използвайте ctx в заявки или горутини
// Анулирайте и двата контекста
cancel1()
cancel2()
(Обърнете внимание, че точният синтаксис и функции могат да варират, тъй като новите възможности зависят от конкретната реализация в Go 1.21.)