Sobes.tech
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í.