Junior — Middle
91
Objasnite princip rada klase AtomicInteger u Javi i kako ona obezbeđuje sigurnu upravu niti.
Компаније где су питане
eRaga Infosystem
Одговор од АИ
sobes.tech АИ
Класс AtomicInteger в Java предоставляет целочисленное значение, операции над которым являются атомарными, то есть выполняются полностью или не выполняются вовсе, без прерывания другими потоками. Это обеспечивает безопасное управление состоянием в многопоточной среде без использования явной синхронизации.
Основные методы AtomicInteger, такие как incrementAndGet(), decrementAndGet(), compareAndSet(), используют низкоуровневые атомарные инструкции процессора (например, CAS — compare-and-swap), что позволяет избежать гонок данных.
Пример использования:
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();
}
}
В этом примере несколько потоков могут безопасно вызывать increment(), и значение count будет корректно увеличиваться без дополнительных блокировок.