Класс 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...). |
Подробное описание конструкторов
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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/concurrent/atomic/AtomicReference.html
compareAndExchange(V, V)иcompareAndSet(V, V)).