Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: context, cancellation, timeout, deadline

Зачем нужен контекст (context) в Go?

Вопрос проверяет понимание механизма отмены операций, дедлайнов и передачи ограничений между горутинами.

Короткий ответ

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

 

Длинный ответ

Контекст в Go — это объект, который передаётся по цепочке вызовов и позволяет:

  • Отменять операции (через context.WithCancel).

  • Устанавливать дедлайны (context.WithDeadline).

  • Задавать таймауты (context.WithTimeout).

  • Хранить данные запроса (через context.WithValue).

Пример:

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

req, _ := http.NewRequestWithContext(ctx, "GET", "http://example.com", nil)
resp, err := http.DefaultClient.Do(req)

Когда использовать:

  • В обработчиках HTTP-запросов.

  • При взаимодействии с базами данных.

  • Для отмены долгих операций при ошибке.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Golang

    Golang

Ключевые слова

#context

#cancellation

#timeout

#deadline

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.