Junior — Middle
Milyen további funkciók és lehetőségek kerültek bevezetésre a kontextus módszerekbe a Go 1.21 megjelenésével?
sobes.tech MI
Válasz az MI-től
A Go 1.21-ben a context csomagban olyan fejlesztéseket vezettek be, amelyek bővítik a kontextus kezelésének lehetőségeit:
- A timeout és határidő alapú törlés támogatása rugalmasabbá vált.
- Új funkciók kerültek be a több kontextus kényelmes összefűzéséhez.
- Javult a teljesítmény, és csökkent a memóriafelhasználás a kontextusok kezelésénél.
Például most már lehet olyan kontextusokat létrehozni, amelyek automatikusan törlődnek, ha több feltétel teljesül, ez megkönnyíti az operációk életciklusának kezelését:
ctx1, cancel1 := context.WithCancel(context.Background())
ctx2, cancel2 := context.WithTimeout(context.Background(), time.Second*10)
ctx := context.Merge(ctx1, ctx2) // hipotetikus összefűző függvény
// Használja a ctx-t kérésekben vagy goroutine-kkban
// Törölje mindkét kontextust
cancel1()
cancel2()
(Figyelem: a pontos szintaxis és funkciók változhatnak, mivel az új lehetőségek a Go 1.21 konkrét implementációjától függenek.)