Back to questions
Junior — Middle
83
Можешь привести ситуации или случаи, в которых используется концепция контекста?
Answer from AI
sobes.tech AI
В Go концепция контекста (context.Context) используется для управления временем жизни операций, отмены, дедлайнов и передачи сквозных значений между горутинами.
Основные случаи использования:
- Отмена операций: например, при работе с сетевыми запросами или базой данных можно отменить долгую операцию, если клиент прервал запрос.
- Дедлайны и таймауты: можно задать максимальное время выполнения операции, после которого она автоматически прервётся.
- Передача сквозных значений: например, идентификаторы запросов, токены аутентификации, метаданные, которые нужны на разных уровнях вызовов.
Пример:
func HandleRequest(ctx context.Context) {
select {
case <-time.After(5 * time.Second):
// Выполнить работу
case <-ctx.Done():
// Операция отменена или истёк дедлайн
return
}
}
Контекст помогает писать более управляемый и отзывчивый код, особенно в многопоточных и сетевых приложениях.