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

По какому принципу потоки записывают переменную в общей памяти

В Java потоки работают с общей памятью через механизм happens-before, гарантирующий видимость изменений. Без синхронизации изменения переменной в одном потоке могут быть не видны другим.

Ключевые моменты:

  1. volatile - гарантирует видимость изменений сразу для всех потоков
  2. synchronized - создает happens-before связь
  3. final поля - гарантированно видны после инициализации

Пример проблемы:

java
class Example {
    int x = 0; // без volatile/synchronized
    void writer() { x = 1; }
    void reader() { System.out.println(x); }
}

Здесь reader() может вывести 0, даже если writer() уже выполнился. Решение - добавить volatile к x или использовать синхронизацию.

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

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

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

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