Junior — Middle
Czy konieczne jest użycie metody Cancel podczas tworzenia kontekstu z limitem czasu za pomocą Context.WithTimeout?
sobes.tech AI
Odpowiedź od AI
Tak, zdecydowanie zaleca się wywołanie funkcji Cancel, zwracanej przez context.WithTimeout, aby zwolnić zasoby związane z kontekstem, gdy nie są już potrzebne. Nawet jeśli upłynie czas i kontekst zostanie automatycznie odwołany, wywołanie Cancel pomaga uniknąć wycieków zasobów.
Przykład użycia:
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
// Używaj ctx w operacjach
Wywołanie defer cancel() gwarantuje, że zasoby zostaną zwolnione po wyjściu z funkcji, nawet jeśli operacja zakończy się wcześniej niż czas oczekiwania.