Sobes.tech
Назад к вопросам
Junior — Middle
72

Какую роль выполняет класс AtomicInteger в конкуррентных операциях в Java?

Компании, где спрашивали
СБЕР КорпусСБЕР Корпус

Ответ от нейросети

sobes.tech AI

Класс AtomicInteger в Java предоставляет атомарные операции над целочисленными значениями без использования блокировок (synchronized). Это значит, что операции, такие как инкремент, декремент, установка и сравнение с обменом (compareAndSet), выполняются как неделимые, что предотвращает состояния гонки в многопоточной среде.

Например, если несколько потоков одновременно увеличивают счетчик, использование AtomicInteger гарантирует корректное обновление значения без потери инкрементов, в отличие от обычного int с обычным инкрементом.

Пример:

import java.util.concurrent.atomic.AtomicInteger;

public class Counter {
    private AtomicInteger count = new AtomicInteger(0);

    public void increment() {
        count.incrementAndGet();
    }

    public int getCount() {
        return count.get();
    }
}

Здесь incrementAndGet() атомарно увеличивает значение и возвращает новое значение, что безопасно в конкурентной среде.