Встречается на собеседованиях • сегодня

Для чего нужна Java Memory Model

Java Memory Model (JMM) определяет правила видимости изменений переменных между потоками и порядок выполнения операций в многопоточной среде. Она гарантирует предсказуемое поведение программы при работе с shared-данными.

Ключевые аспекты JMM:

  • Happens-before - гарантирует порядок операций между потоками
  • Видимость изменений - изменения в одном потоке становятся видны другим
  • Запрет переупорядочивания - компилятор/процессор не могут менять порядок операций, нарушающий happens-before

Пример проблемы без JMM:

java
// Без синхронизации изменение флага может быть невидимо другому потоку
boolean flag = true;

new Thread(() -> {
    while(flag) { /* ... */ }  // Может зациклиться
}).start();

Thread.sleep(1000);
flag = false;  // Изменение может не примениться

JMM регламентирует использование volatile, synchronized, final и других механизмов для корректной работы с памятью в многопоточных приложениях.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы