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

В чем разница между атомарным типом и volatile

Атомарные типы (например, AtomicInteger, AtomicBoolean) гарантируют атомарность операций (чтение-изменение-запись) через CAS (Compare-And-Swap) механизмы. Они подходят для сложных операций, таких как инкремент.

volatile обеспечивает только видимость изменений между потоками (чтение всегда из main memory, запись сразу в main memory), но не гарантирует атомарность составных операций.

Пример:

java
// volatile - не подходит для инкремента
volatile int count = 0;
count++; // Не атомарно!

// AtomicInteger - атомарный инкремент
AtomicInteger atomicCount = new AtomicInteger(0);
atomicCount.incrementAndGet(); // Атомарно

Используй volatile для простых операций записи/чтения, атомарные типы - для сложных операций.

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

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

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

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