Junior — Middle
Welke methoden kunnen worden gebruikt om racecondities te voorkomen in een multithread-omgeving?
sobes.tech AI
Antwoord van AI
Om race condities (race condition) in een multithread-omgeving te voorkomen, worden de volgende methoden gebruikt:
- Synchronisatie (synchronized) — blokkeren van kritieke code-secties, zodat slechts één thread ze tegelijk kan uitvoeren.
- Gebruik van klassen uit java.util.concurrent — bijvoorbeeld,
ReentrantLock,AtomicInteger,ConcurrentHashMap. - Vermijden van gedeelde toestand — ontwerpen van thread-veilige datastructuren of gebruik maken van onveranderlijke objecten.
- Gebruik van volatile — om de zichtbaarheid van variabelenwijzigingen tussen threads te garanderen.
Voorbeeld met synchronized:
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public synchronized int getCount() {
return count;
}
}
Hier zijn de methoden increment en getCount gesynchroniseerd om gelijktijdige toegang en race condities te voorkomen.