Получить доступ

Java Memory Model и атомарность

Основа с Middle

happens-before, volatile, атомарные классы и CAS.

Что важно знать

  • Без синхронизации поток может не увидеть запись другого потока.
  • happens-before: запуск потока, запись в volatile, освобождение монитора.
  • volatile даёт видимость, но не атомарность i++.
  • CAS — основа атомарных классов; LongAdder под высокой конкуренцией.

Критерии освоения

Middle ≈ 6 ч

  • Объясняет видимость и happens-before и когда нужен volatile
  • Использует AtomicInteger, LongAdder и CAS вместо блокировок там, где уместно

Практика. Показать проблему видимости без volatile и исправить тремя способами.

Senior ≈ 4 ч

  • Объясняет безопасную публикацию объектов и ошибку double-checked locking без volatile

Практика. Разобрать реализацию ленивого синглтона с double-checked locking и объяснить, что гарантирует volatile.

Вопросы с собеседований

Разборы темы

← Вся карта «Java»

Закрытая бета

Знать тему — половина дела

На живом собеседовании sotto слышит вопрос интервьюера и показывает короткий ответ и план. Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем