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,AtomicReferenceetc.) — 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.