Junior — Middle
Използвали ли сте механизма WithCancel за управление на отменянето на контекста във вашите проекти?
sobes.tech AI
Отговор от AI
Да, механизмът WithCancel от пакета context в Go често се използва за управление на отмените на операции и горутини. Той позволява създаването на контекст, който може да бъде отменен ръчно, което е удобно за прекъсване на дълги или асинхронни задачи.
Пример за използване:
ctx, cancel := context.WithCancel(context.Background())
// Стартираме горутина, която слуша за отменяне
go func() {
<-ctx.Done()
fmt.Println("Операцията е отменена")
}()
// В някакъв момент извикваме cancel()
cancel()
Това позволява да се контролира жизненият цикъл на операциите и да се предотвратят изтичания на ресурси.