Junior — Middle
Jakie korzyści i funkcje zapewnia korzystanie z kontekstów podrzędnych w systemie?
sobes.tech AI
Odpowiedź od AI
W Go, konteksty podrzędne tworzone są za pomocą funkcji context.WithCancel, context.WithTimeout lub context.WithDeadline i oferują następujące korzyści:
- Zarządzanie czasem życia: Pozwalają na anulowanie operacji i zwolnienie zasobów, gdy kontekst nadrzędny zostanie anulowany lub upłynie limit czasu.
- Przesyłanie sygnałów anulowania: Wszystkie konteksty podrzędne otrzymują sygnał anulowania od kontekstu nadrzędnego, co upraszcza koordynację gorutyn.
- Przesyłanie wartości: Konteksty mogą zawierać wartości dostępne dla kontekstów podrzędnych, co jest przydatne do przekazywania parametrów i ustawień.
Przykład:
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
// przekazujemy ctx do gorutyny, która zakończy się po 5 sekundach lub przy anulowaniu