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

Как работать с примитивами в многопоточности

Для работы с примитивами в многопоточности используйте атомарные классы из java.util.concurrent.atomic (AtomicInteger, AtomicLong и т.д.). Они обеспечивают thread-safe операции без блокировок.

Пример с AtomicInteger:

java
AtomicInteger counter = new AtomicInteger(0);

// Потокобезопасное инкрементирование
counter.incrementAndGet();

// Потокобезопасное сложение
counter.addAndGet(5);

text

Для сложных условий используйте `compareAndSet()`:  
```java
int expected = 10;
int newValue = 20;
while (!counter.compareAndSet(expected, newValue)) {
    expected = counter.get();
}

Для volatile переменных:

java
private volatile boolean flag = false;

volatile гарантирует видимость изменений между потоками, но не атомарность составных операций. Для сложных сценариев предпочтительнее атомарные классы или synchronized.

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

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

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

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