Middle
Milyen más módszerek vannak a szálak versenyhelyzetének kezelésére a volatile kulcsszó használata mellett?
sobes.tech MI
Válasz az MI-től
Mutekszok (szinkronizált blokkok vagy függvények, Lock API), atom változók (AtomicInteger, AtomicBoolean stb.), szemaforok, monitorok, csatornák (az adatok átviteléhez szálak között), és párhuzamos hozzáférésre biztonságos adatszerkezetek használata (például, ConcurrentHashMap, CopyOnWriteArrayList).
// Példa szinkronizált blokkal
private final Object lock = new Object();
private int count = 0;
public void increment() {
synchronized (lock) {
count++;
}
}
// AtomicInteger példával
private final java.util.concurrent.atomic.AtomicInteger atomicCount = new java.util.concurrent.atomic.AtomicInteger(0);
public void incrementAtomic() {
atomicCount.incrementAndGet();
}