Sobes.tech
Junior — Middle

Milyen módszerekkel biztosítható biztonságos hozzáférés egy objektumhoz vagy annak mezőjéhez több szálról egyszerre?

sobes.tech MI

Válasz az MI-től

Java-ban különböző szinkronizációs módszereket alkalmaznak, hogy biztonságosan hozzáférjenek egy objektumhoz vagy annak mezőjéhez több szálból:

  • A synchronized kulcsszó — lehetővé teszi metódusok vagy kódrészek szinkronizálását, hogy csak egy szál hajthassa végre őket egyszerre.

  • A java.util.concurrent csomag osztályai, például a ReentrantLock — rugalmasabb zárolási mechanizmus.

  • Volatile mezők — garantálják a változások láthatóságát a változóban a szálak között, de nem biztosítják a komplex műveletek atomosságát.

  • Atomi osztályok (AtomicInteger, AtomicReference stb.) — atomikus műveleteket kínálnak zárolás nélkül.

  • Immutable objektumok — ha egy objektum változatlan, biztonságosan hozzáférhető több szálból szinkronizáció nélkül.

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 garantálja, hogy a count feletti műveletek atomikusak és szálbiztosak legyenek.