Зачем нужен context в Go?

Middle
1.5k просмотров
AFK Offer AI

Context решает три задачи: отмена операций, дедлайны/таймауты и передача request-scoped данных. Допустим, пользователь отменил HTTP запрос — через context.WithCancel отмена прокидывается вниз по всей цепочке вызовов: хендлер → сервис → запрос в БД. WithTimeout даёт таймаут на операцию, WithValue — прокидывает trace ID или auth данные. Контекст всегда первый аргумент функции, это конвенция Go.

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

Как сделать потокобезопасную map?