Sobes.tech
Junior — Middle

Cum asigurați siguranța în timpul operațiilor multi-thread?

sobes.tech AI

Răspuns de la AI

Pentru a asigura siguranța în timpul efectuării operațiunilor multi-thread în Java, este necesar să preveniți condițiile de cursă și să asigurați un acces corect la resursele comune.

Abordări principale:

  • Sincronizare (synchronized) — blocarea secțiunilor critice ale codului pentru ca doar un singur fir de execuție să le poată executa simultan.

  • Utilizarea claselor din java.util.concurrent, de exemplu, ReentrantLock, Semaphore, ConcurrentHashMap.

  • Obiecte imutabile — dacă datele sunt imuabile, pot fi utilizate în siguranță din mai multe fire de execuție.

  • Variabile Volatile — garantează vizibilitatea modificărilor variabilei între fire.

Exemplu cu synchronized:

public class Counter {
    private int count = 0;

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

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

Această abordare previne modificarea simultană a variabilei count de către mai multe fire, asigurând siguranța datelor.