Sobes.tech
Junior — Middle

Koje metode mogu obezbediti siguran pristup jednom objektu ili njegovom polju iz više niti istovremeno?

sobes.tech АИ

Одговор од АИ

Da biste osigurali sigurn pristup objektu ili njegovom polju iz više niti u Javi, koriste se različite metode sinhronizacije:

  • Ključna reč synchronized — omogućava sinhronizaciju metoda ili blokova koda tako da ih može izvršiti samo jedna nit u isto vreme.

  • Klase iz paketa java.util.concurrent, na primer, ReentrantLock — fleksibilniji mehanizam zaključavanja.

  • Volatile polja — garantuju vidljivost promena promenljive između niti, ali ne obezbeđuju atomarnost složenih operacija.

  • Atomske klase (AtomicInteger, AtomicReference itd.) — obezbeđuju atomarne operacije bez zaključavanja.

  • Nepromenljivi objekti — ako je objekat nepromenljiv, siguran je za pristup iz više niti bez sinhronizacije.

Primer sa synchronized:

public class Counter {
    private int count = 0;

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

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

Ovaj pristup garantuje da će operacije nad count biti atomarne i sigurne za niti.