Назад к вопросам
СБЕР Корпус
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() атомарно увеличивает значение и возвращает новое значение, что безопасно в конкурентной среде.