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

Какие операции вызывает Happens-Before

Happens-Before в Java определяет порядок выполнения операций между потоками. Основные случаи:

  1. Синхронизация - выход из synchronized блока happens-before вход в synchronized блок с тем же монитором.
java
synchronized(lock) {
    x = 1;  // Запись happens-before
}
// ...
synchronized(lock) {
    System.out.println(x);  // Гарантированно увидит 1
}
  1. volatile - запись в volatile переменную happens-before чтение той же переменной.

  2. Thread.start() - вызов start() happens-before выполнение кода в новом потоке.

  3. Thread.join() - завершение потока happens-before возврат из join().

  4. Инициализация final полей - запись в final поле happens-before чтение объекта после его полной инициализации.

  5. Библиотечные классы - например, CountDownLatch.await() happens-before после countDown().

Happens-Before гарантирует видимость изменений между потоками, но не определяет фактический порядок выполнения инструкций.

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

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

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

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