Вернуться в видеотекуMock-собеседование старшего Go разработчика из Тинькофф | Самое полное интервью
Длинное мок-собеседование по внутреннему устройству конкурентности в Go. Вопросы переходят от горутин и планировщика к примитивам синхронизации, архитектуре серверов и низкоуровневым аспектам процессоров.
- Направление
- Backend
- Формат
- Мок-собеседование
- Компания
Ozon- Грейд
- Senior
- Длительность
- 30 мин
Коротко о видео
Это мок-собеседование по Go concurrency: интервьюер задаёт Денису, представленному как старший разработчик из Тинькофф, углублённые вопросы о горутинах, потоках, планировщике и синхронизации. Собеседник рассуждает вслух и в ряде тем прямо отмечает, что не помнит низкоуровневые детали; интервьюер развивает ответы уточняющими вопросами. Во второй половине разбирают каналы, context, CAS, кэш-когерентность, конкурентный доступ к map, архитектуру веб-сервера и синхронизацию связного списка.
Затронутые темы
Что взять на заметку
- Подготовьте объяснение модели G-M-P в Go: роли горутин, OS-потоков и P, локальные очереди, блокирующие системные вызовы и work stealing.
- Умейте сравнить горутины с потоками ОС, включая динамический стек, хранение состояния и причины более дорогого context switching у потоков.
- Повторите кооперативную и вытесняющую многозадачность, кванты времени, приоритетное планирование, Round Robin и Shortest Job First.
- Разберите примитивы синхронизации Go: mutex, WaitGroup, atomic-операции, spinlock, а также причины deadlock и способ предотвращения через единый порядок захвата блокировок.
- Нужно понимать устройство каналов: очереди отправителей и получателей, буферизацию, блокировку при полном буфере и применение буферизированного канала как ограничителя параллелизма.
- Повторите Compare-and-Swap и context.Context: сигнал отмены через закрытие Done-канала, cancel, timeout и освобождение ресурсов.
- Для системного дизайна полезно уметь сопоставлять поточную и событийную архитектуры веб-сервера, шардирование конкурентной map и блокировки отдельных узлов связного списка.