Встречается на собеседованиях • сегодня
Как устроена Java Memory Model
Java Memory Model (JMM) определяет правила видимости изменений переменных между потоками и порядок выполнения операций. Основные концепции:
- Happens-before - гарантирует, что операции в одном потоке видны другому, если между ними есть отношение happens-before (например, синхронизация, volatile, запуск/завершение потока).
-
Видимость изменений - без синхронизации изменения в одном потоке могут быть не видны другим.
-
Переупорядочивание - JVM может переставлять инструкции для оптимизации, если это не нарушает семантику однопоточного выполнения.
Пример с volatile:
java
class Shared {
volatile boolean flag = false;
void writer() {
flag = true; // запись happens-before чтение этого значения
}
void reader() {
if (flag) { // гарантированно увидит true, если writer() был выполнен
// действие
}
}
}Ключевые механизмы синхронизации: synchronized, volatile, final, атомарные классы из java.util.concurrent.atomic.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы