Spec-Zone.ru › OpenJDK 21

Пакет 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, 2023, 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/21/docs/api/java.base/java/util/concurrent/locks/package-summary.html

Spec-Zone.ru

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