Sobes.tech
Junior — Middle

Explicați utilizarea cuvântului cheie synchronized în dezvoltarea Android și cum influențează lucrul cu firele.

sobes.tech AI

Răspuns de la AI

În Android (și în Java în general), cuvântul cheie synchronized este folosit pentru a organiza sincronizarea între firele de execuție, pentru a evita problemele de acces concurent la resursele comune.

Când o metodă sau un bloc de cod este declarat ca synchronized, înseamnă că, în orice moment, doar un singur fir poate executa acel cod pentru acel obiect (monitor). Acest lucru previne condițiile de cursă și asigură o funcționare corectă cu datele partajate.

Exemplu:

public class Counter {
    private int count = 0;

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

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

Aici, metodele increment și getCount sunt sincronizate, astfel încât, dacă mai mulți fire apelează aceste metode, ele vor fi executate pe rând, garantând modificarea și citirea corectă a variabilei count.

Este important să rețineți că utilizarea excesivă a synchronized poate duce la scăderea performanței din cauza blocajelor, așa că trebuie folosită doar acolo unde protecția datelor este cu adevărat necesară.