Sobes.tech
Junior — Middle

Welke methoden kunnen veilige toegang tot een object of een veld ervan garanderen vanuit meerdere threads tegelijk?

sobes.tech AI

Antwoord van AI

Om veilige toegang tot een object of een veld ervan uit meerdere threads in Java te garanderen, worden verschillende synchronisatiemethoden gebruikt:

  • Sleutelwoord synchronized — je kunt methoden of codeblokken synchroniseren zodat slechts één thread ze tegelijk kan uitvoeren.

  • Klassen uit de package java.util.concurrent, bijvoorbeeld ReentrantLock — een flexibelere vergrendelingsmechanisme.

  • Volatile-velden — garanderen de zichtbaarheid van wijzigingen in de variabele tussen threads, maar bieden geen garantie voor de atomariteit van complexe operaties.

  • Atomische klassen (AtomicInteger, AtomicReference, enz.) — bieden atomische operaties zonder vergrendeling.

  • Onveranderlijke objecten — als een object onveranderlijk is, is het veilig om het te benaderen vanuit meerdere threads zonder synchronisatie.

Voorbeeld met synchronized:

public class Counter {
    private int count = 0;

    public synchronized void increment() {
        count++;
    }

    public synchronized int getCount() {
        return count;
    }
}

Deze aanpak garandeert dat operaties op count atomair en thread-safe zijn.