Sobes.tech
Junior — Middle

Šta podrazumeva ključna reč volatile u Java programiranju?

sobes.tech АИ

Одговор од АИ

U Javi, ključna reč volatile se koristi za označavanje promenljive čija vrednost može biti promenjena od strane više niti istovremeno. Ona garantuje da će čitanje i pisanje te promenljive biti izvršeni direktno iz glavne memorije, a ne iz keš memorije procesora, čime se obezbeđuje vidljivost promena između niti.

Bez volatile, jedna nit može videti zastarelu vrednost promenljive, jer promene mogu ostati u lokalnom kešu druge niti.

Primer:

public class Counter {
    private volatile int count = 0;

    public void increment() {
        count++; // neatomska operacija, ali `volatile` garantuje vidljivost
    }

    public int getCount() {
        return count;
    }
}

Važno: volatile ne garantuje atomarnost operacija, pa je za složenije promene bolje koristiti sinhronizaciju ili atomsku klasu iz java.util.concurrent.atomic.