Sobes.tech
Junior — Middle

Szükséges-e kötelezően használni a Cancel metódust, amikor egy időkorlátos kontextust hozunk létre a Context.WithTimeout segítségével?

sobes.tech MI

Válasz az MI-től

Igen, erősen ajánlott meghívni a context.WithTimeout által visszaadott Cancel függvényt, hogy a kontextussal kapcsolatos erőforrásokat akkor szabadítsuk fel, amikor már nincs rájuk szükség. Még akkor is, ha az időkorlát lejár és a kontextus automatikusan megszűnik, a Cancel hívása segít elkerülni az erőforrás szivárgásokat.

Használati példa:

ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()

// Használja a ctx-t műveletekben

A defer cancel() hívás garantálja, hogy az erőforrások felszabadulnak a függvényből való kilépéskor, még akkor is, ha a művelet korábban fejeződik be a timeout előtt.