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

Публичное собеседование по многопоточности в Android / Сергей Боиштян (Авито)

Запись публичного собеседования по многопоточности в Android и Java. Включает задачи на видимость данных, обсуждение пулов, синхронизации и ответы на вопросы аудитории.

Источник: Podlodka

Открыть на YouTube

Таймлайн

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

Публичное учебное собеседование по многопоточности для Android-разработчика: кандидат отвечает на вопросы, а интервьюер уточняет и развивает рассуждения. Обсуждаются Java Memory Model, видимость данных между потоками, volatile, пулы потоков, переключение контекста, wait/notify, блокирующие и неблокирующие примитивы. В финале участники разбирают подходы к подготовке, книги и практическую ценность глубокого понимания конкурентности.

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

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

  • На собеседовании важно не только назвать synchronized, volatile или Semaphore, но и последовательно объяснить, какие гарантии видимости и порядка нужны в конкретной ситуации.
  • Для CPU-bound задач размер пула обычно стоит ограничивать числом ядер, а для I/O-bound задач допустима более высокая параллельность, поскольку потоки часто ждут сеть или диск.
  • Нельзя выводить порядок наблюдаемых значений общих переменных только из порядка строк в исходном коде: без синхронизации существенны видимость, кеши и переупорядочивание.
  • Активный polling расходует процессорное время; для ожидания события обычно подходят wait/notify, Condition, семафоры или очереди, а spin-wait оправдан лишь при очень коротком ожидаемом ожидании.
  • При высокой конкуренции нужно сокращать критическую секцию и, если операция допускает сериализацию, рассматривать очередь с одним обработчиком вместо множества ожидающих или крутящихся потоков.
  • Для подготовки полезно разбирать маленькие задачи на варианты межпоточных событий: они быстрее выявляют понимание Java Memory Model, чем заучивание перечня API.
  • По мнению интервьюера, глубина вопросов должна соответствовать уровню: для начинающего важнее базовые примитивы, а для опытного разработчика — рассуждение о железе, кешах и проектных компромиссах.

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

1 ч 49 мин
MobileJunior

Собеседование в прямом эфире. Junior Android разработчик

Запись смоделированного Junior Android-собеседования с подробным техническим разбором ответов кандидата и последующей сессией вопросов аудитории о входе в профессию. Основной акцент — на практическом владении Android и умении рассуждать, а не только воспроизводить определения.