Spec-Zone.ru › OpenJDK 25

Пакет java.util.concurrent.locks

package java.util.concurrent.locks
Интерфейсы и классы, предоставляющие инфраструктуру для блокировок и ожидания условий, отличную от встроенной синхронизации и мониторов. Эта инфраструктура обеспечивает гораздо большую гибкость при использовании блокировок и условий, но ценой более громоздкого синтаксиса.

Интерфейс Lock поддерживает дисциплины блокировок, различающиеся семантикой (повторный вход, справедливость и т. д.) и применимые в контекстах, не ограниченных блочными структурами, включая алгоритмы передачи блокировки от одного потока к другому и изменения порядка блокировок. Основная реализация — ReentrantLock.

Интерфейс ReadWriteLock аналогичным образом определяет блокировки, которые могут совместно использоваться читателями, но являются эксклюзивными для писателей. Предоставлена только одна реализация — ReentrantReadWriteLock, поскольку она подходит для большинства стандартных сценариев использования. Однако программисты могут создавать собственные реализации для нестандартных требований.

Интерфейс Condition описывает переменные условий, которые могут быть связаны с блокировками. По использованию они похожи на неявные мониторы, доступ к которым осуществляется с помощью Object.wait, но обладают расширенными возможностями. В частности, с одним объектом Lock может быть связано несколько объектов Condition. Чтобы избежать проблем совместимости, имена методов Condition отличаются от соответствующих версий Object.

Класс AbstractQueuedSynchronizer служит полезным суперклассом для определения блокировок и других средств синхронизации, использующих очереди заблокированных потоков. Класс AbstractQueuedLongSynchronizer предоставляет те же возможности, но расширяет поддержку состояния синхронизации до 64 бит. Оба класса наследуют класс AbstractOwnableSynchronizer — простой класс, помогающий отслеживать поток, который в данный момент владеет эксклюзивной блокировкой синхронизации. Класс LockSupport предоставляет низкоуровневые средства блокировки и разблокировки, полезные разработчикам, реализующим собственные настраиваемые классы блокировок.

С версии:
1.5
Пакет Описание
java.util.concurrent
Вспомогательные классы, часто используемые при параллельном программировании.
java.util.concurrent.atomic
Небольшой набор классов для потокобезопасного программирования без блокировок с отдельными переменными.
Класс Описание
AbstractOwnableSynchronizer
Средство синхронизации, которым может эксклюзивно владеть поток.
AbstractQueuedLongSynchronizer
Версия AbstractQueuedSynchronizer, в которой состояние синхронизации хранится как long.
AbstractQueuedSynchronizer
Предоставляет инфраструктуру для реализации блокирующих блокировок и связанных средств синхронизации (семафоров, событий и т. д.), использующих очереди ожидания по принципу «первым пришёл — первым обслужен» (FIFO).
Condition
Condition выделяет методы монитора Object (wait, notify и notifyAll) в отдельные объекты, позволяя создать несколько наборов ожидания для одного объекта, если сочетать их с произвольными реализациями Lock.
Lock
Реализации Lock предоставляют более широкий набор операций блокировки, чем доступен с помощью методов и операторов synchronized.
LockSupport
Базовые примитивы блокировки потоков для создания блокировок и других классов синхронизации.
ReadWriteLock
ReadWriteLock поддерживает пару связанных объектов locks: один для операций чтения и один для записи.
ReentrantLock
Повторно входимая блокировка взаимного исключения Lock с теми же основными поведением и семантикой, что и у неявной блокировки монитора, доступ к которой осуществляется с помощью методов и операторов synchronized, но с расширенными возможностями.
ReentrantReadWriteLock
Реализация ReadWriteLock, поддерживающая семантику, сходную с ReentrantLock.
ReentrantReadWriteLock.ReadLock
Блокировка, возвращаемая методом ReentrantReadWriteLock.readLock().
ReentrantReadWriteLock.WriteLock
Блокировка, возвращаемая методом ReentrantReadWriteLock.writeLock().
StampedLock
Блокировка на основе разрешений с тремя режимами управления доступом для чтения и записи.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API