Spec-Zone.ru › OpenJDK 24

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

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

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

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

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

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

Since:
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
Замок на основе возможностей с тремя режимами для управления доступом к чтению/записи.

© 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

Spec-Zone.ru

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