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