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