Встречается на собеседованиях • сегодня
По какому принципу потоки считывают переменную в общей памяти
В Java потоки считывают переменные из общей памяти согласно модели памяти Java (JMM). Основные принципы:
- Happens-Before - гарантирует видимость изменений между потоками при определенных условиях (synchronized, volatile, final)
- Visibility - без синхронизации нет гарантии, что изменения одной переменной в одном потоке будут видны в другом
Пример проблемы:
java
class Shared {
int x = 0; // без volatile/synchronized
}
// Поток 1:
shared.x = 1;
// Поток 2:
System.out.println(shared.x); // может вывести 0 или 1Решение:
java
class Shared {
volatile int x = 0; // или используем synchronized
}Для атомарных операций лучше использовать AtomicInteger и другие классы из java.util.concurrent.atomic.

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