Встречается на собеседованиях • сегодня
Решает ли ключевое слово volatile проблему Race Condition
Нет, volatile не решает проблему Race Condition. Оно гарантирует видимость изменений переменной для всех потоков, но не обеспечивает атомарность операций.
Пример Race Condition:
java
private volatile int counter = 0;
public void increment() {
counter++; // Не атомарная операция (read-modify-write)
}
text
Даже с `volatile` несколько потоков могут одновременно прочитать значение, изменить и записать, что приведёт к потере обновлений. Для решения Race Condition нужно использовать:
- `synchronized`
- `AtomicInteger` и другие атомарные классы
- `Lock` интерфейсы
Пример правильного решения:
```java
private final AtomicInteger counter = new AtomicInteger(0);
public void increment() {
counter.incrementAndGet(); // Атомарная операция
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы