Junior — Middle
Môžete vysvetliť, čo znamená pojem 'atomárna premenná' v programovaní?
sobes.tech AI
Odpoveď od AI
Atomická premenná v programovaní je premenná, nad ktorou operácie vykonávajú ako nedeliteľné (atomické) akcie. To znamená, že pri práci s takouto premennou nemôže dôjsť ku stavu pretečenia alebo čiastočnej aktualizácii — operácia buď úplne dokončí, alebo vôbec nezačne.
V Jave napríklad trieda AtomicInteger z balíka java.util.concurrent.atomic poskytuje atomické operácie nad celými číslami, ako je inkrementácia, dekrementácia, porovnanie a výmena. To umožňuje bezpečnú prácu s premennými v prostredí s viacerými vláknami bez použitia zámkov.
Príklad použitia AtomicInteger:
import java.util.concurrent.atomic.AtomicInteger;
public class Counter {
private AtomicInteger count = new AtomicInteger(0);
public void increment() {
count.incrementAndGet(); // atomické inkrementovanie
}
public int getCount() {
return count.get();
}
}
Tu incrementAndGet() garantuje, že aj pri súčasnom volaní z viacerých vlákien bude hodnota správne zvýšená bez straty aktualizácií.