Sobes.tech
Junior — Middle

Ce metode pot asigura accesul sigur la un obiect sau la câmpul său din mai multe fire în același timp?

sobes.tech AI

Răspuns de la AI

Pentru a asigura accesul sigur la un obiect sau la câmpul său din mai multe fire în Java, se utilizează diferite metode de sincronizare:

  • Cuvântul cheie synchronized — poate sincroniza metode sau blocuri de cod pentru ca doar un singur fir să le execute simultan.

  • Clase din pachetul java.util.concurrent, de exemplu, ReentrantLock — un mecanism de blocare mai flexibil.

  • Câmpuri volatile — garantează vizibilitatea modificărilor variabilei între fire, dar nu asigură atomicitatea operațiilor complexe.

  • Clase atomice (AtomicInteger, AtomicReference etc.) — oferă operații atomice fără blocare.

  • Obiecte imutabile — dacă un obiect este imuabil, este sigur pentru accesul din mai multe fire fără sincronizare.

Exemplu cu synchronized:

public class Counter {
    private int count = 0;

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

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

Această abordare garantează că operațiile asupra lui count sunt atomice și sigure pentru fire.