Мы используем файлы cookie
Мы используем файлы cookie для улучшения работы сайта и предоставления вам персонализированного опыта. Правила использования файлов cookie можно найти в нашей политике конфиденциальности
Контекст (context.Context
) в Go — объект, который несет дедлайн, сигнал отмены (cancellation signal) и данные, специфичные для запроса. Используется для управления жизненным циклом горутин и передачи информации между ними в процессе выполнения одного запроса/операции.
Основные характеристики:
Context
cannot be changed. Деривативные контексты создаются на основе родительского.context.Background()
или context.TODO()
). Отмена родительского контекста приводит к отмене всех дочерних.Основные функции пакета context
:
context.Background()
: Пустой контекст, обычно используется в main-функции, в верхнеуровневых запросах или при тестировании. Не отменен никогда.context.TODO()
: Также пустой контекст. Используется как заглушка, когда неизвестно, какой контекст использовать, или если функциональность контекста еще не реализована.context.WithCancel(parent Context)
: Возвращает новый дочерний контекст и функцию отмены. Вызов функции отмены отменяет этот контекст и все его дочерние контексты.context.WithDeadline(parent Context, deadline time.Time)
: Возвращает дочерний контекст, который автоматически отменяется, когда наступает указанное время. Также возвращает функцию отмены для ручной отмены.context.WithTimeout(parent Context, timeout time.Duration)
: То же, что и WithDeadline
, но с указанием длительности.Контекст (context.Context
) в Go — объект, который несет дедлайн, сигнал отмены (cancellation signal) и данные, специфичные для запроса. Используется для управления жизненным циклом горутин и передачи информации между ними в процессе выполнения одного запроса/операции.
Основные характеристики:
Context
cannot be changed. Деривативные контексты создаются на основе родительского.context.Background()
или context.TODO()
). Отмена родительского контекста приводит к отмене всех дочерних.Основные функции пакета context
:
context.Background()
: Пустой контекст, обычно используется в main-функции, в верхнеуровневых запросах или при тестировании. Не отменен никогда.context.TODO()
: Также пустой контекст. Используется как заглушка, когда неизвестно, какой контекст использовать, или если функциональность контекста еще не реализована.context.WithCancel(parent Context)
: Возвращает новый дочерний контекст и функцию отмены. Вызов функции отмены отменяет этот контекст и все его дочерние контексты.context.WithDeadline(parent Context, deadline time.Time)
: Возвращает дочерний контекст, который автоматически отменяется, когда наступает указанное время. Также возвращает функцию отмены для ручной отмены.context.WithTimeout(parent Context, timeout time.Duration)
: То же, что и WithDeadline
, но с указанием длительности.Зарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.