Sobes.tech
Junior — Middle

Kokius siūlų sinchronizacijos mechanizmus naudojote savo projektuose?

sobes.tech AI

Atsakymas iš AI

Java projektuose, skirtuose sinchronizacijai, naudojausi šiuos mechanizmus:

  • Raktinis žodis synchronized — metodų arba kodo blokų užrakinimui, siekiant užtikrinti išskirtinį prieigą prie bendro naudojimo išteklių.

  • Klasės iš java.util.concurrent paketo:

    • ReentrantLock — lankstesnė alternatyva synchronized su galimybe bandyti įgyti užraktą ir su laiko limitu.
    • CountDownLatch, Semaphore, CyclicBarrier — kelių srautų darbo koordinavimui.
    • ConcurrentHashMap — saugi kolekcija paraleliniam prieigai.
  • Volatile kintamieji — užtikrina pokyčių matomumą tarp srautų be pilno užrakinimo.

Pavyzdys naudojant synchronized:

public class Counter {
    private int count = 0;

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

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