Middle
volatile ачкыч сөзүн колдонбостон, жиптердин жарышына каршы күрөшүүнүн башка кандай жолдору бар?
sobes.tech AI
AIден жооп
Мьютекс (синхрондоштурулган блоктор же функциялар, Lock API), атомдук өзгөрмөлөр (AtomicInteger, AtomicBoolean жана башка), семафорлор, мониторлор, каналдар (жиптер ортосунда маалымат өткөрүү үчүн), жана параллелдикке коопсуз маалымат структураларын колдонуу (мисалы, ConcurrentHashMap, CopyOnWriteArrayList).
// синхрондоштурулган блок менен мисал
private final Object lock = new Object();
private int count = 0;
public void increment() {
synchronized (lock) {
count++;
}
}
// AtomicInteger менен мисал
private final java.util.concurrent.atomic.AtomicInteger atomicCount = new java.util.concurrent.atomic.AtomicInteger(0);
public void incrementAtomic() {
atomicCount.incrementAndGet();
}