Sobes.tech
Junior — Middle

Ați putea explica conceptul de sincronizare în programarea multi-thread?

sobes.tech AI

Răspuns de la AI

Sincronizarea în programarea multi-thread este un mecanism care permite gestionarea accesului mai multor fire de execuție la resursele comune pentru a evita conflictele și comportamentul incorect al programului. Fără sincronizare, firele pot modifica simultan aceleași date, ceea ce duce la condiții de cursă.

În Java și Android, se folosește adesea cuvântul cheie synchronized, care blochează accesul la o secțiune de cod sau obiect specific, permițând ca doar un singur fir să execute acel cod la un moment dat.

Exemplu:

public class Counter {
    private int count = 0;

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

    public int getCount() {
        return count;
    }
}

Aici, metoda increment este sincronizată, iar dacă mai multe fire o apelează simultan, vor fi executate pe rând, prevenind creșterea incorectă a contorului.

De asemenea, în Android, se pot folosi și alte mecanisme de sincronizare, precum ReentrantLock, Semaphore sau clasele Atomic din pachetul java.util.concurrent, pentru o gestionare mai flexibilă a firelor de execuție.