Sobes.tech
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říklad ReentrantLock, 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.