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

Что такое модель памяти в Java

Модель памяти Java (JMM) определяет правила взаимодействия потоков с общей памятью, гарантируя предсказуемое поведение многопоточных программ. Основные аспекты:

  1. Happens-before - отношение, гарантирующее видимость изменений между потоками
  2. Работа с volatile - чтение/запись volatile переменной создает happens-before
  3. Синхронизация - операции с synchronized, Lock, atomic создают happens-before

Пример проблемы видимости:

java
class Example {
    int x = 0;
    boolean ready = false;
    
    void writer() {
        x = 42;
        ready = true; // без синхронизации другой поток может не увидеть эти изменения
    }
    
    void reader() {
        if (ready) {
            System.out.println(x); // может вывести 0
        }
    }
}

JMM позволяет компилятору и процессору переупорядочивать операции для оптимизации, но гарантирует корректность при правильной синхронизации.

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

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

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

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