Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: golang, context, timeout, select

Как с помощью context регулировать время ожидания в Go?

Вопрос проверяет знание context.

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

Используют context.WithTimeout или context.WithDeadline в комбинации с select, чтобы завершить операцию по истечении времени.

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

В Go время ожидания операций удобно контролировать через context. Для этого создают новый context с таймаутом (context.WithTimeout) или с конкретным дедлайном (context.WithDeadline). Полученный context передают в функцию, которая должна поддерживать завершение по <-ctx.Done(). Чтобы обработать истечение времени, обычно используют оператор select, в котором один case — это канал с результатом работы, а второй — <-ctx.Done(). Когда наступает дедлайн или таймаут, context автоматически закрывает свой канал Done, и функция может корректно завершить работу. Такой подход часто применяется в HTTP-запросах, работе с базами данных и внешними сервисами.

Вывод: Управление временем ожидания через context — стандартный и надёжный способ предотвратить зависания и утечки горутин.

  • Аватар

    Golang Guru

    Maxim Lukyanov

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

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • Golang

    Golang

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

#golang

#context

#timeout

#select

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

  • Аватар

    Golang Guru

    Maxim Lukyanov

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