Junior — Middle
Czym różni się użycie AtomicInteger od standardowego Integer w kontekście wielowątkowości?
sobes.tech AI
Odpowiedź od AI
AtomicInteger отличается от обычного Integer тем, что обеспечивает атомарные операции над числом в многопоточной среде без необходимости использовать синхронизацию вручную.
Обычный Integer — это неизменяемый объект, и операции с ним не являются атомарными. Если несколько потоков одновременно изменяют значение, может возникнуть состояние гонки.
AtomicInteger предоставляет методы, такие как incrementAndGet(), compareAndSet(), которые гарантируют, что операции будут выполнены атомарно, что повышает безопасность и производительность в многопоточном коде.
Пример использования AtomicInteger:
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();
}
}