Пакет java.util.concurrent.locks
Интерфейс Lock поддерживает дисциплины блокировок, различающиеся семантикой (повторный вход, справедливость и т. д.) и применимые в контекстах, не ограниченных блочными структурами, включая алгоритмы передачи блокировки от одного потока к другому и изменения порядка блокировок. Основная реализация — ReentrantLock.
Интерфейс ReadWriteLock аналогичным образом определяет блокировки, которые могут совместно использоваться читателями, но являются эксклюзивными для писателей. Предоставлена только одна реализация — ReentrantReadWriteLock, поскольку она подходит для большинства стандартных сценариев использования. Однако программисты могут создавать собственные реализации для нестандартных требований.
Интерфейс Condition описывает переменные условий, которые могут быть связаны с блокировками. По использованию они похожи на неявные мониторы, доступ к которым осуществляется с помощью Object.wait, но обладают расширенными возможностями. В частности, с одним объектом Lock может быть связано несколько объектов Condition. Чтобы избежать проблем совместимости, имена методов Condition отличаются от соответствующих версий Object.
Класс AbstractQueuedSynchronizer служит полезным суперклассом для определения блокировок и других средств синхронизации, использующих очереди заблокированных потоков. Класс AbstractQueuedLongSynchronizer предоставляет те же возможности, но расширяет поддержку состояния синхронизации до 64 бит. Оба класса наследуют класс AbstractOwnableSynchronizer — простой класс, помогающий отслеживать поток, который в данный момент владеет эксклюзивной блокировкой синхронизации. Класс LockSupport предоставляет низкоуровневые средства блокировки и разблокировки, полезные разработчикам, реализующим собственные настраиваемые классы блокировок.
- С версии:
- 1.5
| Класс | Описание |
|---|---|
| AbstractOwnableSynchronizer | Средство синхронизации, которым может эксклюзивно владеть поток. |
| AbstractQueuedLongSynchronizer | Версия AbstractQueuedSynchronizer, в которой состояние синхронизации хранится как long. |
| AbstractQueuedSynchronizer | Предоставляет инфраструктуру для реализации блокирующих блокировок и связанных средств синхронизации (семафоров, событий и т. д.), использующих очереди ожидания по принципу «первым пришёл — первым обслужен» (FIFO). |
| Condition | |
| Lock |
Реализации Lock предоставляют более широкий набор операций блокировки, чем доступен с помощью методов и операторов synchronized. |
| LockSupport | Базовые примитивы блокировки потоков для создания блокировок и других классов синхронизации. |
| ReadWriteLock | ReadWriteLock поддерживает пару связанных объектов locks: один для операций чтения и один для записи. |
| ReentrantLock | Повторно входимая блокировка взаимного исключения Lock с теми же основными поведением и семантикой, что и у неявной блокировки монитора, доступ к которой осуществляется с помощью методов и операторов synchronized, но с расширенными возможностями. |
| ReentrantReadWriteLock | Реализация ReadWriteLock, поддерживающая семантику, сходную с ReentrantLock. |
| ReentrantReadWriteLock.ReadLock | Блокировка, возвращаемая методом ReentrantReadWriteLock.readLock(). |
| ReentrantReadWriteLock.WriteLock | Блокировка, возвращаемая методом ReentrantReadWriteLock.writeLock(). |
| StampedLock | Блокировка на основе разрешений с тремя режимами управления доступом для чтения и записи. |
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/concurrent/locks/package-summary.html