Sobes.tech
Junior — Middle

Vysvětlete použití klíčového slova synchronized ve vývoji pro Android a jak ovlivňuje práci s vlákny.

sobes.tech AI

Odpověď od AI

V Androidu (a obecně v Javě) se klíčové slovo synchronized používá k organizaci synchronizace mezi vlákny, aby se předešlo problémům s paralelním přístupem ke sdíleným zdrojům.

Když je metoda nebo blok kódu deklarován jako synchronized, znamená to, že v každém okamžiku může tento kód vykonávat pouze jedno vlákno pro daný objekt (monitor). To zabraňuje závodním podmínkám a zajišťuje správnou práci se sdílenými daty.

Příklad:

public class Counter {
    private int count = 0;

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

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

Zde jsou metody increment a getCount synchronizovány, takže pokud je volá více vláken, budou se vykonávat postupně, což garantuje správnou změnu a čtení proměnné count.

Je důležité pamatovat, že nadměrné používání synchronized může vést ke snížení výkonu kvůli zámkům, proto by mělo být používáno pouze tam, kde je skutečně potřeba chránit data.