Что такое happens-before? Зачем разработчику про это знать? Откуда берётся эта гарантия?

Happens-before — отношение порядка и видимости действий в модели памяти Java. Оно позволяет доказать, что один поток увидит записи другого при корректной синхронизации.

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

Что ответить на собеседовании

Happens-before — отношение порядка и видимости действий в модели памяти Java. Оно позволяет доказать, что один поток увидит записи другого при корректной синхронизации.

Подробный разбор

Ответ с пояснениями

Happens-before — отношение порядка и видимости действий в модели памяти Java. Оно позволяет доказать, что один поток увидит записи другого при корректной синхронизации.

Гарантии задаёт Java Memory Model, а JVM обязана их обеспечить на конкретном процессоре. Примеры: освобождение монитора предшествует последующему захвату того же монитора; запись volatile — последующему чтению этой переменной. Есть правила для start, join и транзитивности. Это не просто хронологическое «раньше»: без связи happens-before одного времени выполнения недостаточно.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее