Sobes.tech
Назад к вопросам
Middle+
5

Что такое контекст в Go и для чего используется?

Компании, где спрашивали
MAX LTD Group

Ответ от нейросети

sobes.tech AI

Контекст (context) в Go — это механизм для передачи сквозных значений, сигналов отмены и дедлайнов между горутинами и функциями. Он используется для управления временем жизни операций, особенно в сетевых запросах, обработке запросов и параллельных вычислениях.

Основные возможности context:

  • Отмена операции (cancel)
  • Установка таймаута или дедлайна
  • Передача значений (например, идентификаторы запросов)

Пример использования:

ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()

select {
case <-time.After(time.Second * 10):
    fmt.Println("operation completed")
case <-ctx.Done():
    fmt.Println("operation cancelled or timed out")
}

Здесь операция прервётся через 5 секунд, даже если она не завершилась.