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.