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,AtomicReferenceitd.) — 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.