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