Sobes.tech
Назад к вопросам
Junior — Middle
77

Что такое контекст у горутины и как он используется?

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

sobes.tech AI

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

Основные применения контекста:

  • Отмена работы горутины (например, при таймауте или отмене запроса)
  • Передача дедлайна (времени, к которому операция должна завершиться)
  • Передача значений, связанных с запросом (например, ID пользователя или токен)

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

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")
}

Таким образом, контекст позволяет контролировать выполнение горутин и передавать им необходимые параметры без использования глобальных переменных.