Junior — Middle
Czy używałeś mechanizmu WithCancel do zarządzania anulowaniem kontekstu w swoich projektach?
sobes.tech AI
Odpowiedź od AI
Tak, mechanizm WithCancel z pakietu context w Go jest często używany do zarządzania anulowaniem operacji i goroutine. Pozwala na utworzenie kontekstu, który można ręcznie anulować, co jest przydatne do przerwania długich lub asynchronicznych zadań.
Przykład użycia:
ctx, cancel := context.WithCancel(context.Background())
// Uruchamiamy goroutine, która nasłuchuje na anulowanie
go func() {
<-ctx.Done()
fmt.Println("Operacja anulowana")
}()
// W pewnym momencie wywołujemy cancel()
cancel()
To pozwala kontrolować cykl życia operacji i zapobiega wyciekom zasobów.