Пакет java.util.concurrent.locks
Интерфейс Lock поддерживает дисциплины блокировки, которые различаются по семантике (взаимная исключающая, честная и т.д.), и которые могут использоваться в контекстах, не использующих блокирующие структуры, включая алгоритмы передачи по цепочке и переупорядочения замков. Основная реализация — ReentrantLock.
Интерфейс ReadWriteLock аналогичным образом определяет замки, которые могут быть общими для читателей, но являются исключительными для писателей. Предоставляется только одна реализация, ReentrantReadWriteLock, поскольку она охватывает большинство стандартных контекстов использования. Но программисты могут создавать свои собственные реализации, чтобы охватить нестандартные требования.
Интерфейс Condition описывает условия, которые могут быть связаны с замками. Они похожи по использованию на неявные мониторы, доступные с помощью Object.wait, но предлагают расширенные возможности. В частности, несколько объектов Condition могут быть связаны с одним Lock. Чтобы избежать проблем совместимости, имена методов Condition отличаются от соответствующих версий Object.
Класс AbstractQueuedSynchronizer служит полезным базовым классом для определения замков и других синхронизаторов, которые полагаются на очереди заблокированных потоков. Класс AbstractQueuedLongSynchronizer предоставляет ту же функциональность, но расширяет поддержку до 64 битов состояния синхронизации. Оба расширяют класс AbstractOwnableSynchronizer, простой класс, который помогает записывать поток, который в данный момент удерживает эксклюзивную синхронизацию. Класс LockSupport предоставляет поддержку блокировки и разблокировки низкого уровня, которая полезна разработчикам, реализующим собственные настраиваемые классы замков.
- Since:
- 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/concurrent/locks/package-summary.html