Встречается на собеседованиях • сегодня
Какие знаешь проблемы CAS
Основные проблемы CAS (Compare-And-Swap):
1. **ABA проблема** - поток может не заметить, что значение менялось и вернулось обратно. Решение - AtomicStampedReference/AtomicMarkableReference.
```java
AtomicStampedReference ref = new AtomicStampedReference<>(100, 0);
int[] stampHolder = new int[1];
ref.get(stampHolder); // получаем текущую метку
ref.compareAndSet(100, 200, stampHolder[0], stampHolder[0]+1);
```
2. **Проблема долгого ожидания** - при высокой конкуренции потоки могут тратить много времени на повторные попытки.
3. **Ограниченность операций** - CAS работает только с одним значением, для сложных структур данных нужны дополнительные механизмы.
4. **Нет гарантии справедливости** - некоторые потоки могут "голодать", если другие постоянно успевают первыми.
5. **Проблемы с порядком выполнения** - в некоторых архитектурах может потребоваться memory barrier.

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