Вернуться в видеотеку

Разбираем многопоточку на middle java в формате открытого собеседования

Открытое учебное собеседование по Java concurrency для уровня Middle с последующим разбором ответов кандидата и презентацией менторства ШОРТКАТ.

Источник: ШОРТКАТ — менторская программа

Открыть на YouTube

Таймлайн

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

Открытое мок-интервью по многопоточности в Java: кандидат отвечает на вопросы о Java Memory Model, `volatile`, гонках данных, блокировках, потоках, пулах и потокобезопасных коллекциях. После технической части ведущие разбирают уровень ответов, обсуждают форматы лайвкодинга и рассказывают о менторской платформе ШОРТКАТ. Оценка кандидата как Middle дана ведущим в рамках учебного мок-интервью, а не реального найма.

Затронутые темы

Что взять на заметку

  • Для ответов о Java Memory Model нужно уметь объяснить видимость изменений между потоками и отношение happens-before, включая эффект запуска потока через `Thread.start()`.
  • `volatile` обеспечивает видимость и упорядочивание операций с переменной, но не делает составные операции вроде `counter++` атомарными; для них нужны синхронизация или атомарные типы.
  • Data race возникает при конкурентном доступе к общей изменяемой памяти без корректной синхронизации, когда результат зависит от порядка исполнения потоков.
  • Для защиты критических секций обсуждаются mutex/lock, `synchronized`, семафоры и атомарные переменные; риск deadlock снижается отказом от вложенных блокировок либо единым порядком захвата lock’ов.
  • Нужно различать `Thread` и `Runnable`, а также `start()` и прямой вызов `run()`: `start()` запрашивает создание нового потока, тогда как `run()` сам по себе выполняется в текущем потоке.
  • Вопросы подготовки охватывают thread pool, Fork/Join, `CountDownLatch`, `Semaphore`, `Exchanger`, `wait`, `sleep`, `yield`, double-checked locking и concurrent-коллекции.
  • Для реальных интервью ведущий советует подготовить не только определения, но и собственные примеры: где возникали deadlock или race condition, как выбирались `volatile`, синхронизация и обработка ошибок.

Рекомендуем посмотреть