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

В чем разница между волатильностью и атомарностью

Volatile обеспечивает видимость изменений переменной для всех потоков, но не гарантирует атомарность операций. Пример:

java
volatile int counter = 0;
counter++; // Не атомарно!

Атомарность означает, что операция выполняется как единое целое без вмешательства других потоков. Для этого используют Atomic-классы:

java
AtomicInteger atomicCounter = new AtomicInteger(0);
atomicCounter.incrementAndGet(); // Атомарно

Ключевые различия:

  1. volatile — про видимость, атомарные классы — про неделимость операций
  2. Инкремент volatile переменной не атомарен
  3. Atomic-классы используют CAS (Compare-And-Swap) для thread-safe операций
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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