Sobes.tech
Junior — Middle

Felsorolnád a több szálas programozásban használt különböző zárolási mechanizmusokat?

sobes.tech MI

Válasz az MI-től

Java több szálas programozásában különböző zárolási mechanizmusokat használnak a közös erőforrásokhoz való hozzáférés szinkronizálására:

  • synchronized — beépített zárolási mechanizmus, amely alkalmazható metódusokra vagy kódrészekre. Az objektum monitorját használja.
  • ReentrantLock a java.util.concurrent.locks csomagból — rugalmasabb zárolás, amely lehetővé teszi a megszakítást, időkorlátokat és az állapot ellenőrzését.
  • ReadWriteLock — lehetővé teszi a zárolások megosztását olvasás és írás között, ez növeli a teljesítményt sok olvasási művelet esetén.
  • Semaphore — korlátozza a szálak számát, amelyek egyidejűleg hozzáférhetnek egy erőforráshoz.
  • CountDownLatch és CyclicBarrier — a szálak koordinálására szolgálnak, bár nem klasszikus zárolások, hanem szinkronizálók.

ReentrantLock használatának példája:

import java.util.concurrent.locks.ReentrantLock;

ReentrantLock lock = new ReentrantLock();

lock.lock();
try {
    // kritikus szakasz
} finally {
    lock.unlock();
}