AtomicInteger и другие атомарные классы позволяют безопасно выполнять отдельные операции над общим значением из нескольких потоков, например incrementAndGet или compareAndSet.
Для чего нужны атомарные классы Java, например AtomicInteger?
AtomicInteger и другие атомарные классы позволяют безопасно выполнять отдельные операции над общим значением из нескольких потоков, например incrementAndGet или compareAndSet.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
AtomicInteger и другие атомарные классы позволяют безопасно выполнять отдельные операции над общим значением из нескольких потоков, например incrementAndGet или compareAndSet.
Обычное count++ состоит из чтения, вычисления и записи: два потока могут потерять обновление. Атомарный метод выполняет такую операцию как единое действие. Но последовательность из нескольких атомарных вызовов не становится общей транзакцией: инвариант между несколькими переменными может требовать блокировки или другой структуры данных.