Spec-Zone.ru › OpenJDK 25

Класс 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

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

AtomicReferenceArray

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

AtomicReferenceArray

public AtomicReferenceArray(E[] array)
Создает новый AtomicReferenceArray той же длины, что и заданный массив, копируя из него все элементы.
Параметры:
array — массив, из которого копируются элементы
Исключения:
NullPointerException — если array равен 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)
Устарел.
Этот метод имеет обычные эффекты для памяти, однако его имя подразумевает волатильные эффекты для памяти (см. такие методы, как compareAndExchange(int, E, E) и compareAndSet(int, E, E)). Во избежание путаницы между обычными и волатильными эффектами для памяти рекомендуется вместо него использовать метод 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; семантика доступа к памяти соответствует чтению переменной, объявленной как non-volatile.
Параметры:
i — индекс
Возвращает:
значение
Начиная с версии:
9

setPlain

public final void setPlain(int i, E newValue)
Задает для элемента с индексом i значение newValue; семантика доступа к памяти соответствует записи переменной, объявленной как non-volatile и non-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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/concurrent/atomic/AtomicReferenceArray.html

Spec-Zone.ru

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