Senior
31
Milyen szinkronizációs eszközök vannak Java-ban?
Cégeket kérdeztek
РТЛабс
Válasz az MI-től
sobes.tech MI
В Java для синхронизации потоков и управления доступом к разделяемым ресурсам используются следующие инструменты:
- Ключевое слово
synchronized— блоки или методы, которые обеспечивают эксклюзивный доступ к коду. - Классы из пакета
java.util.concurrent.locks:ReentrantLock— более гибкая альтернативаsynchronizedс возможностью попытки захвата блокировки и таймаутом.ReadWriteLock— разделяет блокировку на чтение и запись, позволяя нескольким потокам читать одновременно.
- Семафоры (
Semaphore) — ограничивают количество потоков, одновременно выполняющих определённый участок кода. - Барьерные синхронизации (
CyclicBarrier,CountDownLatch) — позволяют потокам ждать друг друга в определённых точках. - Атомарные классы (
AtomicInteger,AtomicReferenceи др.) — обеспечивают атомарные операции без блокировок.
Пример использования ReentrantLock:
import java.util.concurrent.locks.ReentrantLock;
ReentrantLock lock = new ReentrantLock();
lock.lock();
try {
// критическая секция
} finally {
lock.unlock();
}