Sobes.tech
Middle

Millised on teised viis võidelda niidivõistluse vastu, välja arvatud volatile märksõna kasutamine?

sobes.tech AI

Vastus AI-lt

Müüteksid (sünkroniseeritud plokid või funktsioonid, Lock API), atomilised muutujad (AtomicInteger, AtomicBoolean jms.), semaforid, monitoorid, kanalid (andmete edastamiseks lõimede vahel), ning andmestruktuuride kasutamine, mis on turvalised paralleelseks juurdepääsuks (näiteks, ConcurrentHashMap, CopyOnWriteArrayList).

// Näide sünkroniseeritud plokiga
private final Object lock = new Object();
private int count = 0;

public void increment() {
    synchronized (lock) {
        count++;
    }
}
// Näide AtomicInteger-ga
private final java.util.concurrent.atomic.AtomicInteger atomicCount = new java.util.concurrent.atomic.AtomicInteger(0);

public void incrementAtomic() {
    atomicCount.incrementAndGet();
}