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

Что делает Compare And Set

Compare And Set (CAS) — это атомарная операция, которая проверяет, соответствует ли текущее значение переменной ожидаемому, и только в этом случае обновляет его. Если значение изменилось другим потоком, операция завершается неудачей.

Реализована в Java через классы Atomic* (например, AtomicInteger):

java
AtomicInteger atomicInt = new AtomicInteger(5);
boolean updated = atomicInt.compareAndSet(5, 10); // true, если значение было 5

Особенности:

  • Неблокирующая альтернатива synchronized.
  • Может привести к гонке (поток повторяет попытки, если CAS провалился).
  • Поддержка на уровне процессора (инструкция CMPXCHG в x86).

Используется в ConcurrentHashMap, Lock-Free алгоритмах и др.

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

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

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

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