Sobes.tech
Junior — Middle

Hogyan biztosítható a biztonság több szálú műveletek végrehajtásakor?

sobes.tech MI

Válasz az MI-től

Annak érdekében, hogy Java-ban több szálú műveletek végrehajtásakor biztonságot biztosítson, meg kell akadályozni a versenyhelyzeteket és biztosítani kell a közös erőforrások helyes hozzáférését.

Fő megközelítések:

  • Szinchronizáció (synchronized) — kritikus kód szekciók zárolása, hogy csak egy szál hajthassa végre őket egyszerre.

  • A java.util.concurrent osztályok használata, például ReentrantLock, Semaphore, ConcurrentHashMap.

  • Immutable objektumok — ha az adatok változatlanok, biztonságosan használhatók különböző szálakról.

  • Volatile változók — garantálják a változások láthatóságát a változóban a szálak között.

Példa synchronized-del:

public class Counter {
    private int count = 0;

    public synchronized void increment() {
        count++;
    }

    public synchronized int getCount() {
        return count;
    }
}

Ez a megközelítés megakadályozza, hogy több szál egyidejűleg módosítsa a count változót, ezáltal biztosítva az adatok biztonságát.