Sobes.tech
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.