Middle
Kādi ir citi veidi, kā cīnīties ar pavedienu sacensībām, izņemot volatile atslēgvārda izmantošanu?
sobes.tech AI
Atbilde no AI
Mūtekši (sinhronizēti bloki vai funkcijas, Lock API), atomāras mainīgās (AtomicInteger, AtomicBoolean utt.), semafori, monitori, kanāli (datu pārraidīšanai starp pavedieniem), un datu struktūru izmantošana, kas ir drošas paralēlai piekļuvei (piemēram, ConcurrentHashMap, CopyOnWriteArrayList).
// Piemērs ar sinhronizētu bloku
private final Object lock = new Object();
private int count = 0;
public void increment() {
synchronized (lock) {
count++;
}
}
// Piemērs ar AtomicInteger
private final java.util.concurrent.atomic.AtomicInteger atomicCount = new java.util.concurrent.atomic.AtomicInteger(0);
public void incrementAtomic() {
atomicCount.incrementAndGet();
}