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