Junior — Middle
Kādas metodes var izmantot sacensību stāvokļa novēršanai daudzšūnu vidē?
sobes.tech AI
Atbilde no AI
Lai novērstu sacensību stāvokli (race condition) daudzšūnu vidē, tiek izmantotas šādas metodes:
- Sinhronizācija (synchronized) — kritisko koda sekciju bloķēšana, lai tikai viens pavediens varētu tās izpildīt vienlaikus.
- Izmantojot java.util.concurrent klases — piemēram,
ReentrantLock,AtomicInteger,ConcurrentHashMap. - Kopīgas stāvokļa novēršana — izstrādājot pavedieniem drošas datu struktūras vai izmantojot nemaināmus objektus.
- Izmantojot volatile — nodrošināt mainīgo redzamību starp pavedieniem.
Piemērs ar synchronized:
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public synchronized int getCount() {
return count;
}
}
Šeit metodes increment un getCount ir sinhronizētas, lai novērstu vienlaicīgu piekļuvi un sacensību stāvokli.