Spec-Zone.ru › OpenJDK 17

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

Spec-Zone.ru

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