Spec-Zone.ru › OpenJDK 25

Класс AtomicReference<V>

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

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

Конструктор Описание
AtomicReference()
Создает новый AtomicReference с начальным значением null.
AtomicReference(V initialValue)
Создает новый AtomicReference с заданным начальным значением.

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

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

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

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

AtomicReference

public AtomicReference(V initialValue)
Создает новый AtomicReference с заданным начальным значением.
Параметры:
initialValue - начальное значение

AtomicReference

public AtomicReference()
Создает новый AtomicReference с начальным значением null.

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

get

public final V get()
Возвращает текущее значение; эффекты для памяти соответствуют спецификации VarHandle.getVolatile(Object...).
Возвращает:
текущее значение

set

public final void set(V newValue)
Устанавливает значение newValue; эффекты для памяти соответствуют спецификации VarHandle.setVolatile(Object...).
Параметры:
newValue - новое значение

lazySet

public final void lazySet(V newValue)
Устанавливает значение newValue; эффекты для памяти соответствуют спецификации VarHandle.setRelease(Object...).
Параметры:
newValue - новое значение
Начиная с версии:
1.6

compareAndSet

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

weakCompareAndSet

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

weakCompareAndSetPlain

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

getAndSet

public final V getAndSet(V newValue)
Атомарно устанавливает значение newValue и возвращает старое значение; эффекты для памяти соответствуют спецификации VarHandle.getAndSet(Object...).
Параметры:
newValue - новое значение
Возвращает:
предыдущее значение

getAndUpdate

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

updateAndGet

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

getAndAccumulate

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

accumulateAndGet

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

toString

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

getPlain

public final V getPlain()
Возвращает текущее значение с семантикой памяти чтения, как если бы переменная была объявлена не-volatile.
Возвращает:
значение
Начиная с версии:
9

setPlain

public final void setPlain(V newValue)
Устанавливает значение newValue с семантикой памяти установки, как если бы переменная была объявлена не-volatile и не-final.
Параметры:
newValue - новое значение
Начиная с версии:
9

getOpaque

public final V getOpaque()
Возвращает текущее значение; эффекты для памяти соответствуют спецификации VarHandle.getOpaque(Object...).
Возвращает:
значение
Начиная с версии:
9

setOpaque

public final void setOpaque(V newValue)
Устанавливает значение newValue; эффекты для памяти соответствуют спецификации VarHandle.setOpaque(Object...).
Параметры:
newValue - новое значение
Начиная с версии:
9

getAcquire

public final V getAcquire()
Возвращает текущее значение; эффекты для памяти соответствуют спецификации VarHandle.getAcquire(Object...).
Возвращает:
значение
Начиная с версии:
9

setRelease

public final void setRelease(V newValue)
Устанавливает значение newValue; эффекты для памяти соответствуют спецификации VarHandle.setRelease(Object...).
Параметры:
newValue - новое значение
Начиная с версии:
9

compareAndExchange

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

compareAndExchangeAcquire

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

compareAndExchangeRelease

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

weakCompareAndSetVolatile

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

weakCompareAndSetAcquire

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

weakCompareAndSetRelease

public final boolean weakCompareAndSetRelease(V expectedValue, V newValue)
Возможно, атомарно устанавливает значение newValue, если текущее значение == expectedValue; эффекты для памяти соответствуют спецификации VarHandle.weakCompareAndSetRelease(Object...).
Параметры:
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/AtomicReference.html

Spec-Zone.ru

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