Как отменить группу горутин?

Middle
379 просмотров
AFK Offer AI

Через context.WithCancel: создаёшь ctx, cancel := context.WithCancel(parentCtx), передаёшь ctx всем горутинам. Вызываешь cancel() — все горутины получают сигнал через ctx.Done(). errgroup ещё удобнее: если одна горутина вернула ошибку, отменяются все остальные (errgroup.WithContext). Важно — горутины должны проверять ctx.Done() в своих циклах, иначе отмена не сработает. Паттерн: select { case <-ctx.Done(): return ctx.Err() }.

Следующий вопрос

Что такое write-through cache?