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();
}