Класс 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 |
Создает новый AtomicReferenceArray заданной длины, изначально заполняя все элементы значением null. |
AtomicReferenceArray |
Создает новый AtomicReferenceArray той же длины и копирует в него все элементы заданного массива. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final E |
accumulateAndGet |
Атомарно обновляет элемент с индексом i (с эффектами памяти, указанными в VarHandle.compareAndSet(Object...)), применяя заданную функцию к текущему и заданному значениям, и возвращает обновленное значение. |
final E |
compareAndExchange |
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента, называемое свидетельствующим значением, == expectedValue; эффекты памяти указаны в VarHandle.compareAndExchange(Object...). |
final E |
compareAndExchangeAcquire |
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента, называемое свидетельствующим значением, == expectedValue; эффекты памяти указаны в VarHandle.compareAndExchangeAcquire(Object...). |
final E |
compareAndExchangeRelease |
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента, называемое свидетельствующим значением, == expectedValue; эффекты памяти указаны в VarHandle.compareAndExchangeRelease(Object...). |
final boolean |
compareAndSet |
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты памяти указаны в VarHandle.compareAndSet(Object...). |
final E |
get |
Возвращает текущее значение элемента с индексом i; эффекты памяти указаны в VarHandle.getVolatile(Object...). |
final E |
getAcquire |
Возвращает текущее значение элемента с индексом i; эффекты памяти указаны в VarHandle.getAcquire(Object...). |
final E |
getAndAccumulate |
Атомарно обновляет элемент с индексом i (с эффектами памяти, указанными в VarHandle.compareAndSet(Object...)), применяя заданную функцию к текущему и заданному значениям, и возвращает предыдущее значение. |
final E |
getAndSet |
Атомарно устанавливает для элемента с индексом i значение
newValue и возвращает прежнее значение; эффекты памяти указаны в VarHandle.getAndSet(Object...). |
final E |
getAndUpdate |
Атомарно обновляет элемент с индексом i (с эффектами памяти, указанными в VarHandle.compareAndSet(Object...)), применяя заданную функцию, и возвращает предыдущее значение. |
final E |
getOpaque |
Возвращает текущее значение элемента с индексом i; эффекты памяти указаны в VarHandle.getOpaque(Object...). |
final E |
getPlain |
Возвращает текущее значение элемента с индексом i; семантика памяти соответствует чтению переменной, объявленной как non-volatile. |
final void |
lazySet |
Устанавливает для элемента с индексом i значение newValue; эффекты памяти указаны в VarHandle.setRelease(Object...). |
final int |
length() |
Возвращает длину массива. |
final void |
set |
Устанавливает для элемента с индексом i значение newValue; эффекты памяти указаны в VarHandle.setVolatile(Object...). |
final void |
setOpaque |
Устанавливает для элемента с индексом i значение newValue; эффекты памяти указаны в VarHandle.setOpaque(Object...). |
final void |
setPlain |
Устанавливает для элемента с индексом i значение newValue; семантика памяти соответствует записи в переменную, объявленную как non-volatile и non-final. |
final void |
setRelease |
Устанавливает для элемента с индексом i значение newValue; эффекты памяти указаны в VarHandle.setRelease(Object...). |
String |
toString() |
Возвращает строковое представление текущих значений массива. |
final E |
updateAndGet |
Атомарно обновляет элемент с индексом i (с эффектами памяти, указанными в VarHandle.compareAndSet(Object...)), применяя заданную функцию, и возвращает обновленное значение. |
final boolean |
weakCompareAndSet |
Устарел. |
final boolean |
weakCompareAndSetAcquire |
Может атомарно установить для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты памяти указаны в VarHandle.weakCompareAndSetAcquire(Object...). |
final boolean |
weakCompareAndSetPlain |
Может атомарно установить для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты памяти указаны в VarHandle.weakCompareAndSetPlain(Object...). |
final boolean |
weakCompareAndSetRelease |
Может атомарно установить для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты памяти указаны в VarHandle.weakCompareAndSetRelease(Object...). |
final boolean |
weakCompareAndSetVolatile |
Может атомарно установить для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты памяти указаны в VarHandle.weakCompareAndSet(Object...). |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Показывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарел, будет удален: этот элемент API может быть удален в будущей версии. Финализация объявлена устаревшей и может быть удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие уведомления или прерывания. |
final void |
wait |
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до пробуждения, обычно вследствие уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
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
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
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
© 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.
compareAndExchange(int, E, E)иcompareAndSet(int, E, E)).