Junior — Middle
Jak zajistit bezpečnost při provádění vícenásobných operací?
sobes.tech AI
Odpověď od AI
Pro zajištění bezpečnosti při provádění vícevláknových operací v Java je nutné zabránit závodním podmínkám a zajistit správný přístup ke sdíleným zdrojům.
Hlavní přístupy:
-
Synchronizace (synchronized) — blokování kritických sekcí kódu tak, aby je mohl vykonávat pouze jeden vlák najednou.
-
Použití tříd z
java.util.concurrent, napříkladReentrantLock,Semaphore,ConcurrentHashMap. -
Neměnné objekty — pokud jsou data neměnná, lze je bezpečně používat z různých vláken.
-
Volatile proměnné — zaručují viditelnost změn proměnné mezi vlákny.
Příklad s synchronized:
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public synchronized int getCount() {
return count;
}
}
Tento přístup zabraňuje současné změně proměnné count několika vlákny, čímž zajišťuje bezpečnost dat.