Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Меню
Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад

Как спроектировать компонент, который безопасно завершает работу при параллельных вызовах Close?

Вопрос проверяет умение проектировать потокобезопасные API и корректный shutdown.

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

Метод Close должен быть идемпотентным и потокобезопасным. Обычно используется sync.Once, mutex или atomic флаг. Это гарантирует, что ресурс будет закрыт только один раз. Остальные вызовы Close не должны приводить к ошибкам.

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

Зарегистрироваться

Развернутый ответ доступен только зарегистрированным пользователям.

Уровень

  • Рейтинг:

    5

  • Сложность:

    7

Навыки

  • Golang

    Golang

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

#idempotent

#close

#sync

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