Junior — Middle
Kako obezbediti sigurnost pri izvršavanju višestrukih operacija?
sobes.tech АИ
Одговор од АИ
Da biste osigurali bezbednost prilikom izvršavanja višestrukih niti u Javi, potrebno je sprečiti trke i obezbediti ispravan pristup zajedničkim resursima.
Glavni pristupi:
-
Sinhronizacija (synchronized) — blokiranje kritičnih delova koda tako da ih može izvršiti samo jedna nit u isto vreme.
-
Korišćenje klasa iz
java.util.concurrent, na primer,ReentrantLock,Semaphore,ConcurrentHashMap. -
Nepromenjivi objekti — ako su podaci nepromenljivi, mogu se sigurno koristiti iz različitih niti.
-
Volatile promenljive — garantuju vidljivost promena promenljive između niti.
Primer sa synchronized:
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public synchronized int getCount() {
return count;
}
}
Ovaj pristup sprečava istovremenu promenu promenljive count od strane više niti, obezbeđujući sigurnost podataka.