Sobes.tech
Junior — Middle

Mit jelent a volatile kulcsszó a Java programozásban?

sobes.tech MI

Válasz az MI-től

Java-ban a volatile kulcsszó egy változót jelöl, amelyet több szál egyidejűleg módosíthat. Biztosítja, hogy ennek a változónak az olvasása és írása közvetlenül a fő memóriából történjen, nem a processzor gyorsítótárából, ezáltal biztosítva a változások láthatóságát a szálak között.

volatile nélkül egy szál láthat egy elavult értéket a változóból, mivel a változások a másik szál helyi gyorsítótárában maradhatnak.

Példa:

public class Counter {
    private volatile int count = 0;

    public void increment() {
        count++; // nem atomi művelet, de a volatile garantálja a láthatóságot
    }

    public int getCount() {
        return count;
    }
}

Fontos: a volatile nem garantálja az műveletek atomosságát, ezért összetettebb módosításokhoz jobb a szinkronizáció vagy az java.util.concurrent.atomic csomag atomikus osztályainak használata.