Spec-Zone.ru › OpenJDK 27

Класс AtomicReferenceArray<E>

java.lang.Object
java.util.concurrent.atomic.AtomicReferenceArray<E>
Параметры типа:
E - Базовый класс элементов, хранящихся в этом массиве
Все реализуемые интерфейсы:
Serializable
public class AtomicReferenceArray<E> extends Object implements Serializable
Массив ссылок на объекты, элементы которого можно обновлять атомарно. Описание свойств атомарных обращений см. в спецификации VarHandle.
Начиная с версии:
1.5
См. также:
  • Сериализованная форма

Краткое описание конструкторов

Конструктор Описание
AtomicReferenceArray(int length)
Создает новый AtomicReferenceArray заданной длины, изначально заполняя все элементы значением null.
AtomicReferenceArray(E[] array)
Создает новый AtomicReferenceArray той же длины и копирует в него все элементы заданного массива.

Краткое описание методов

Модификатор и тип Метод Описание
final E accumulateAndGet(int i, E x, BinaryOperator<E> accumulatorFunction)
Атомарно обновляет элемент с индексом i (с эффектами памяти, указанными в VarHandle.compareAndSet(Object...)), применяя заданную функцию к текущему и заданному значениям, и возвращает обновленное значение.
final E compareAndExchange(int i, E expectedValue, E newValue)
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента, называемое свидетельствующим значением, == expectedValue; эффекты памяти указаны в VarHandle.compareAndExchange(Object...).
final E compareAndExchangeAcquire(int i, E expectedValue, E newValue)
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента, называемое свидетельствующим значением, == expectedValue; эффекты памяти указаны в VarHandle.compareAndExchangeAcquire(Object...).
final E compareAndExchangeRelease(int i, E expectedValue, E newValue)
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента, называемое свидетельствующим значением, == expectedValue; эффекты памяти указаны в VarHandle.compareAndExchangeRelease(Object...).
final boolean compareAndSet(int i, E expectedValue, E newValue)
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты памяти указаны в VarHandle.compareAndSet(Object...).
final E get(int i)
Возвращает текущее значение элемента с индексом i; эффекты памяти указаны в VarHandle.getVolatile(Object...).
final E getAcquire(int i)
Возвращает текущее значение элемента с индексом i; эффекты памяти указаны в VarHandle.getAcquire(Object...).
final E getAndAccumulate(int i, E x, BinaryOperator<E> accumulatorFunction)
Атомарно обновляет элемент с индексом i (с эффектами памяти, указанными в VarHandle.compareAndSet(Object...)), применяя заданную функцию к текущему и заданному значениям, и возвращает предыдущее значение.
final E getAndSet(int i, E newValue)
Атомарно устанавливает для элемента с индексом i значение newValue и возвращает прежнее значение; эффекты памяти указаны в VarHandle.getAndSet(Object...).
final E getAndUpdate(int i, UnaryOperator<E> updateFunction)
Атомарно обновляет элемент с индексом i (с эффектами памяти, указанными в VarHandle.compareAndSet(Object...)), применяя заданную функцию, и возвращает предыдущее значение.
final E getOpaque(int i)
Возвращает текущее значение элемента с индексом i; эффекты памяти указаны в VarHandle.getOpaque(Object...).
final E getPlain(int i)
Возвращает текущее значение элемента с индексом i; семантика памяти соответствует чтению переменной, объявленной как non-volatile.
final void lazySet(int i, E newValue)
Устанавливает для элемента с индексом i значение newValue; эффекты памяти указаны в VarHandle.setRelease(Object...).
final int length()
Возвращает длину массива.
final void set(int i, E newValue)
Устанавливает для элемента с индексом i значение newValue; эффекты памяти указаны в VarHandle.setVolatile(Object...).
final void setOpaque(int i, E newValue)
Устанавливает для элемента с индексом i значение newValue; эффекты памяти указаны в VarHandle.setOpaque(Object...).
final void setPlain(int i, E newValue)
Устанавливает для элемента с индексом i значение newValue; семантика памяти соответствует записи в переменную, объявленную как non-volatile и non-final.
final void setRelease(int i, E newValue)
Устанавливает для элемента с индексом i значение newValue; эффекты памяти указаны в VarHandle.setRelease(Object...).
String toString()
Возвращает строковое представление текущих значений массива.
final E updateAndGet(int i, UnaryOperator<E> updateFunction)
Атомарно обновляет элемент с индексом i (с эффектами памяти, указанными в VarHandle.compareAndSet(Object...)), применяя заданную функцию, и возвращает обновленное значение.
final boolean weakCompareAndSet(int i, E expectedValue, E newValue)
Устарел.
Этот метод имеет обычные эффекты памяти, но его имя подразумевает эффекты памяти volatile (см. такие методы, как compareAndExchange(int, E, E) и compareAndSet(int, E, E)).
final boolean weakCompareAndSetAcquire(int i, E expectedValue, E newValue)
Может атомарно установить для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты памяти указаны в VarHandle.weakCompareAndSetAcquire(Object...).
final boolean weakCompareAndSetPlain(int i, E expectedValue, E newValue)
Может атомарно установить для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты памяти указаны в VarHandle.weakCompareAndSetPlain(Object...).
final boolean weakCompareAndSetRelease(int i, E expectedValue, E newValue)
Может атомарно установить для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты памяти указаны в VarHandle.weakCompareAndSetRelease(Object...).
final boolean weakCompareAndSetVolatile(int i, E expectedValue, E newValue)
Может атомарно установить для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты памяти указаны в VarHandle.weakCompareAndSet(Object...).

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли другой объект этому объекту.
protected void finalize()
Устарел, будет удален: этот элемент API может быть удален в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие уведомления или прерывания.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени.

Подробное описание конструкторов

AtomicReferenceArray

public AtomicReferenceArray(int length)
Создает новый AtomicReferenceArray заданной длины, изначально содержащий только null.
Параметры:
length — длина массива

AtomicReferenceArray

public AtomicReferenceArray(E[] array)
Создает новый AtomicReferenceArray той же длины, что и заданный массив, и копирует в него все элементы этого массива.
Параметры:
array — массив, из которого копируются элементы
Исключения:
NullPointerException — если массив равен null

Подробное описание методов

length

public final int length()
Возвращает длину массива.
Возвращает:
длину массива

get

public final E get(int i)
Возвращает текущее значение элемента с индексом i с эффектами памяти, указанными в VarHandle.getVolatile(Object...).
Параметры:
i — индекс
Возвращает:
текущее значение

set

public final void set(int i, E newValue)
Задает элементу с индексом i значение newValue с эффектами памяти, указанными в VarHandle.setVolatile(Object...).
Параметры:
i — индекс
newValue — новое значение

lazySet

public final void lazySet(int i, E newValue)
Задает элементу с индексом i значение newValue с эффектами памяти, указанными в VarHandle.setRelease(Object...).
Параметры:
i — индекс
newValue — новое значение
Начиная с версии:
1.6

getAndSet

public final E getAndSet(int i, E newValue)
Атомарно задает элементу с индексом i значение newValue и возвращает старое значение с эффектами памяти, указанными в VarHandle.getAndSet(Object...).
Параметры:
i — индекс
newValue — новое значение
Возвращает:
предыдущее значение

compareAndSet

public final boolean compareAndSet(int i, E expectedValue, E newValue)
Атомарно задает элементу с индексом i значение newValue, если текущее значение элемента == expectedValue, с эффектами памяти, указанными в VarHandle.compareAndSet(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
true в случае успеха. Возвращаемое значение false означает, что фактическое значение не совпало с ожидаемым.

weakCompareAndSet

@Deprecated(since="9") public final boolean weakCompareAndSet(int i, E expectedValue, E newValue)
Устарел.
Этот метод имеет обычные эффекты памяти, однако его имя подразумевает volatile-эффекты памяти (см. такие методы, как compareAndExchange(int, E, E) и compareAndSet(int, E, E)). Чтобы избежать путаницы между обычными и volatile-эффектами памяти, рекомендуется вместо него использовать метод weakCompareAndSetPlain(int, E, E).
Возможно, атомарно задает элементу с индексом i значение newValue, если текущее значение элемента == expectedValue, с эффектами памяти, указанными в VarHandle.weakCompareAndSetPlain(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
true в случае успеха
См. также:
  • weakCompareAndSetPlain(int, E, E)

weakCompareAndSetPlain

public final boolean weakCompareAndSetPlain(int i, E expectedValue, E newValue)
Возможно, атомарно задает элементу с индексом i значение newValue, если текущее значение элемента == expectedValue, с эффектами памяти, указанными в VarHandle.weakCompareAndSetPlain(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
true в случае успеха
Начиная с версии:
9

getAndUpdate

public final E getAndUpdate(int i, UnaryOperator<E> updateFunction)
Атомарно обновляет элемент с индексом i, применяя заданную функцию (с эффектами памяти, указанными в VarHandle.compareAndSet(Object...)), и возвращает предыдущее значение. Функция не должна иметь побочных эффектов, поскольку она может применяться повторно, если попытки обновления завершаются неудачей из-за конкуренции между потоками.
Параметры:
i — индекс
updateFunction — функция без побочных эффектов
Возвращает:
предыдущее значение
Начиная с версии:
1.8

updateAndGet

public final E updateAndGet(int i, UnaryOperator<E> updateFunction)
Атомарно обновляет элемент с индексом i, применяя заданную функцию (с эффектами памяти, указанными в VarHandle.compareAndSet(Object...)), и возвращает обновленное значение. Функция не должна иметь побочных эффектов, поскольку она может применяться повторно, если попытки обновления завершаются неудачей из-за конкуренции между потоками.
Параметры:
i — индекс
updateFunction — функция без побочных эффектов
Возвращает:
обновленное значение
Начиная с версии:
1.8

getAndAccumulate

public final E getAndAccumulate(int i, E x, BinaryOperator<E> accumulatorFunction)
Атомарно обновляет элемент с индексом i, применяя заданную функцию к текущему и заданному значениям (с эффектами памяти, указанными в VarHandle.compareAndSet(Object...)), и возвращает предыдущее значение. Функция не должна иметь побочных эффектов, поскольку она может применяться повторно, если попытки обновления завершаются неудачей из-за конкуренции между потоками. Функция получает текущим значением элемента с индексом i первый аргумент, а заданное обновление — второй аргумент.
Параметры:
i — индекс
x — значение для обновления
accumulatorFunction — функция двух аргументов без побочных эффектов
Возвращает:
предыдущее значение
Начиная с версии:
1.8

accumulateAndGet

public final E accumulateAndGet(int i, E x, BinaryOperator<E> accumulatorFunction)
Атомарно обновляет элемент с индексом i, применяя заданную функцию к текущему и заданному значениям (с эффектами памяти, указанными в VarHandle.compareAndSet(Object...)), и возвращает обновленное значение. Функция не должна иметь побочных эффектов, поскольку она может применяться повторно, если попытки обновления завершаются неудачей из-за конкуренции между потоками. Функция получает текущим значением элемента с индексом i первый аргумент, а заданное обновление — второй аргумент.
Параметры:
i — индекс
x — значение для обновления
accumulatorFunction — функция двух аргументов без побочных эффектов
Возвращает:
обновленное значение
Начиная с версии:
1.8

toString

public String toString()
Возвращает строковое представление текущих значений массива.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление текущих значений массива

getPlain

public final E getPlain(int i)
Возвращает текущее значение элемента с индексом i с семантикой памяти, соответствующей чтению переменной, объявленной без модификатора volatile.
Параметры:
i — индекс
Возвращает:
значение
Начиная с версии:
9

setPlain

public final void setPlain(int i, E newValue)
Задает элементу с индексом i значение newValue с семантикой памяти, соответствующей присваиванию переменной, объявленной без модификаторов volatile и final.
Параметры:
i — индекс
newValue — новое значение
Начиная с версии:
9

getOpaque

public final E getOpaque(int i)
Возвращает текущее значение элемента с индексом i с эффектами памяти, указанными в VarHandle.getOpaque(Object...).
Параметры:
i — индекс
Возвращает:
значение
Начиная с версии:
9

setOpaque

public final void setOpaque(int i, E newValue)
Задает элементу с индексом i значение newValue с эффектами памяти, указанными в VarHandle.setOpaque(Object...).
Параметры:
i — индекс
newValue — новое значение
Начиная с версии:
9

getAcquire

public final E getAcquire(int i)
Возвращает текущее значение элемента с индексом i с эффектами памяти, указанными в VarHandle.getAcquire(Object...).
Параметры:
i — индекс
Возвращает:
значение
Начиная с версии:
9

setRelease

public final void setRelease(int i, E newValue)
Задает элементу с индексом i значение newValue с эффектами памяти, указанными в VarHandle.setRelease(Object...).
Параметры:
i — индекс
newValue — новое значение
Начиная с версии:
9

compareAndExchange

public final E compareAndExchange(int i, E expectedValue, E newValue)
Атомарно задает элементу с индексом i значение newValue, если текущее значение элемента, называемое свидетельствующим значением, == expectedValue, с эффектами памяти, указанными в VarHandle.compareAndExchange(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
свидетельствующее значение, которое в случае успеха совпадает с ожидаемым значением
Начиная с версии:
9

compareAndExchangeAcquire

public final E compareAndExchangeAcquire(int i, E expectedValue, E newValue)
Атомарно задает элементу с индексом i значение newValue, если текущее значение элемента, называемое свидетельствующим значением, == expectedValue, с эффектами памяти, указанными в VarHandle.compareAndExchangeAcquire(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
свидетельствующее значение, которое в случае успеха совпадает с ожидаемым значением
Начиная с версии:
9

compareAndExchangeRelease

public final E compareAndExchangeRelease(int i, E expectedValue, E newValue)
Атомарно задает элементу с индексом i значение newValue, если текущее значение элемента, называемое свидетельствующим значением, == expectedValue, с эффектами памяти, указанными в VarHandle.compareAndExchangeRelease(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
свидетельствующее значение, которое в случае успеха совпадает с ожидаемым значением
Начиная с версии:
9

weakCompareAndSetVolatile

public final boolean weakCompareAndSetVolatile(int i, E expectedValue, E newValue)
Возможно, атомарно задает элементу с индексом i значение newValue, если текущее значение элемента == expectedValue, с эффектами памяти, указанными в VarHandle.weakCompareAndSet(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
true в случае успеха
Начиная с версии:
9

weakCompareAndSetAcquire

public final boolean weakCompareAndSetAcquire(int i, E expectedValue, E newValue)
Возможно, атомарно задает элементу с индексом i значение newValue, если текущее значение элемента == expectedValue, с эффектами памяти, указанными в VarHandle.weakCompareAndSetAcquire(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
true в случае успеха
Начиная с версии:
9

weakCompareAndSetRelease

public final boolean weakCompareAndSetRelease(int i, E expectedValue, E newValue)
Возможно, атомарно задает элементу с индексом i значение newValue, если текущее значение элемента == expectedValue, с эффектами памяти, указанными в VarHandle.weakCompareAndSetRelease(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
true в случае успеха
Начиная с версии:
9

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, 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.

Spec-Zone.ru

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