Sobes.tech
Junior — Middle

Objasnite mehanizam rada klase AtomicInteger i njenu ulogu u implementaciji operacija koje su bezbedne za niti.

sobes.tech АИ

Одговор од АИ

Класа AtomicInteger из пакета java.util.concurrent.atomic пружа целобројну вредност чије операције се изводе атомски, односно недељиви и без ризика од тркаћих услова у мулти-тред окружењу.

Механизам рада се заснива на коришћењу нискоуровњских хардверских инструкција (нпр., CAS — compare-and-swap), које гарантују да операције промене вредности одвијају без прекида и конфликата између тредова.

Улога 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();
    }
}

У овом примеру, више тредова може безбедно да позове increment() без ризика да изгуби ажурирања бројача.