Подготовка к интервью

Банк вопросов с собеседований

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

315 вопросов 1634 компании 353 технологии

Усильте резюме перед собеседованием

Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.

Анализ резюме
Сбросить

Каталог

Результаты поиска

Найдено: 315
Теория

Как работают каналы в Go?

Каналы служат примитивом синхронизации и обмена данными между goroutine Они реализованы в виде буферизированных и небУферизированных очередей Размер буферизации задаёт число элементов, которые можно отправить в канал…

Читать ответ
Лайвкодинг

Как реализовать graceful shutdown в Go для сервиса с HTTP-сервером и фоновыми воркерами?

Как организовать graceful shutdown HTTP-сервиса с воркерами в Go? Контекст: управление остановкой сервиса, одновременно обрабатывающего HTTP-запросы и выполняющего фоновые задачи Для координации завершения применять…

Читать ответ
Лайвкодинг

Как реализовать worker pool в Go и ограничить число горутин?

Как в Go создать worker pool для обработки задач? параллельно выполнять функции с помощью goroutines ограничивать количество активных воркеров через канал-буфер или семафор передавать задания рабочим горутинам через…

Читать ответ
Теория

Как реализовать блокирующую транзакцию при обработке событий?

область: обработка событий, транзакции блокирующая транзакция — гарантирует атомарность и изоляцию использовать механизм блокировок (например, pessimistic locking) для синхронизации применять мьютексы или сходные…

Читать ответ
Лайвкодинг

Как реализовать потокобезопасную структуру данных для блокировки по конкретному ID?

Потокобезопасная структура блокировок по ID цель: обеспечить конкурентный контроль доступа к ресурсам, связанным с уникальным ID хранить блокировки по ID в ConcurrentHashMap / concurrent dictionary для каждого ID…

Читать ответ
Теория

Как сделать REST API идемпотентным, чтобы повторный запрос не выполнил операцию повторно?

Как обеспечить идемпотентность REST API и исключить дублирование операций? Контекст: REST API и идемпотентность Идемпотентность означает, что повторное выполнение операции не меняет полученный результат. Следует…

Читать ответ
Теория

Как синхронизировать группу запросов с помощью DispatchGroup?

DispatchGroup — инструмент GCD для объединения асинхронных задач Перед запуском каждого запроса создаём DispatchGroup и вызываем enter() После завершения очередного запроса вызываем leave() С помощью notify() получаем…

Читать ответ
Теория

Как синхронизировать чтение и запись переменной?

Синхронизация доступа к переменной Мьютексы (Mutexes) — не позволяют другим потокам обращаться к данным, пока блокировка не будет снята RW-локи (Read-Write Locks) — допускают одновременное чтение несколькими потоками,…

Читать ответ
System Design

Как спроектировать локальную систему сохранений с последующим переходом на серверную и организовать запись в оба хранилища?

Проектирование системы сохранений: переход от локальной модели к серверной и двунаправленная запись Архитектура: абстрактный слой сохранения, объединяющий локальное и серверное хранилища Локальное сохранение:…

Читать ответ
Теория

Как таски работают внутри state machine?

Как устроена работа тасков внутри state machine? (Управление состояниями в тасках) state machine — модель, в которой явно заданы состояния и переходы таск описывается набором состояний и переходов между ними для…

Читать ответ
Теория

Как устроен CountDownLatch и когда он разблокирует потоки?

Как устроен CountDownLatch? синхронизатор из Java concurrency создаётся с начальным счётчиком метод await() приостанавливает поток, пока счётчик не станет равен 0 метод countDown() уменьшает значение счётчика на 1…

Читать ответ
Теория

Как устроен HTTP Keep-Alive и какую задачу он решает?

в HTTP/1.1 предусмотрена поддержка постоянных соединений Keep-Alive оставляет TCP-соединение открытым после завершения запроса даёт возможность последовательно выполнять несколько запросов через одно соединение…

Читать ответ