Spec-Zone.ru › OpenJDK 8

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

Интерфейсы и классы, предоставляющие фреймворк для блокировки и ожидания условий, отличный от встроенной синхронизации и мониторов.

См.: Описание

Интерфейс Описание
Condition

Condition выделяет Object методы монитора (wait, notify и notifyAll) в отдельные объекты, чтобы получить эффект наличия нескольких наборов ожидания на один объект, комбинируя их с использованием произвольных реализаций Lock.

Lock

Lock реализации предоставляют более расширенные операции блокировки, чем можно получить, используя synchronized методы и операторы.

ReadWriteLock

ReadWriteLock поддерживает пару связанных locks, одну для операций чтения и одну для записи.

Класс Описание
AbstractOwnableSynchronizer

Синхронизатор, который может быть эксклюзивно владения нитью.

AbstractQueuedLongSynchronizer

Версия AbstractQueuedSynchronizer, в которой состояние синхронизации поддерживается как long.

AbstractQueuedSynchronizer

Предоставляет фреймворк для реализации блокирующих замков и связанных синхронизаторов (семафоры, события и т.д.), которые полагаются на очереди ожидания нитей «первым пришёл — первым обслужен» (FIFO).

LockSupport

Базовые примитивы блокирования потоков для создания замков и других классов синхронизации.

ReentrantLock

Взаимный исключающий замок с повторным вхождением, имеющий такое же базовое поведение и семантику, как неявный замок-монитор, доступный с использованием synchronized методов и операторов, но с расширенными возможностями.

ReentrantReadWriteLock

Реализация ReadWriteLock, поддерживающая семантику, аналогичную ReentrantLock.

ReentrantReadWriteLock.ReadLock

Замок, возвращаемый методом ReentrantReadWriteLock.readLock().

ReentrantReadWriteLock.WriteLock

Замок, возвращаемый методом ReentrantReadWriteLock.writeLock().

StampedLock

Замок на основе возможностей с тремя режимами для управления доступом чтения/записи.

Пакет java.util.concurrent.locks Описание

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

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

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

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

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

С момента:
1.5

© 1993, 2020, 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.

Spec-Zone.ru

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