Класс AtomicReference<V>
- java.lang.Object
-
- java.util.concurrent.atomic.AtomicReference<V>
- Type Parameters:
-
V- Тип объекта, на который ссылается эта ссылка
- Все реализуемые интерфейсы:
- Serializable
public class AtomicReference<V> extends Object implements Serializable
Ссылка на объект, которая может быть обновлена атомарно. См. спецификацию пакета java.util.concurrent.atomic для описания свойств атомарных переменных.
- С тех пор:
- 1.5
- См. также:
- Сериализованная форма
Конструкторы
| Конструктор и описание |
|---|
AtomicReference() Создаёт новый AtomicReference с начальным значением null. |
AtomicReference(V initialValue) Создаёт новый AtomicReference с заданным начальным значением. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
V |
accumulateAndGet(V x,
BinaryOperator<V> accumulatorFunction) Атомарно обновляет текущее значение результатом применения заданной функции к текущему и заданному значениям, возвращая обновлённое значение. |
boolean |
compareAndSet(V expect,
V update) Атомарно устанавливает значение на заданное обновлённое значение, если текущее значение |
V |
get() Получает текущее значение. |
V |
getAndAccumulate(V x,
BinaryOperator<V> accumulatorFunction) Атомарно обновляет текущее значение результатом применения заданной функции к текущему и заданному значениям, возвращая предыдущее значение. |
V |
getAndSet(V newValue) Атомарно устанавливает заданное значение и возвращает старое значение. |
V |
getAndUpdate(UnaryOperator<V> updateFunction) Атомарно обновляет текущее значение результатом применения заданной функции, возвращая предыдущее значение. |
void |
lazySet(V newValue) В конечном итоге устанавливает заданное значение. |
void |
set(V newValue) Устанавливает заданное значение. |
String |
toString() Возвращает строковое представление текущего значения. |
V |
updateAndGet(UnaryOperator<V> updateFunction) Атомарно обновляет текущее значение результатом применения заданной функции, возвращая обновлённое значение. |
boolean |
weakCompareAndSet(V expect,
V update) Атомарно устанавливает значение на заданное обновлённое значение, если текущее значение |
Методы, унаследованные от класса java.lang.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()
Получает текущее значение.
- Возвращает:
- текущее значение
set
public final void set(V newValue)
Устанавливает заданное значение.
- Параметры:
-
newValue- новое значение
lazySet
public final void lazySet(V newValue)
В конечном итоге устанавливает заданное значение.
- Параметры:
-
newValue- новое значение - С тех пор:
- 1.6
compareAndSet
public final boolean compareAndSet(V expect,
V update) Атомарно устанавливает значение на заданное обновлённое значение, если текущее значение == ожидаемое значение.
- Параметры:
-
expect- ожидаемое значение -
update- новое значение - Возвращает:
-
trueесли успешно. Возвращение false указывает, что фактическое значение не было равно ожидаемому значению.
weakCompareAndSet
public final boolean weakCompareAndSet(V expect,
V update) Атомарно устанавливает значение на заданное обновлённое значение, если текущее значение == ожидаемое значение.
Может случайным образом завершиться неудачей и не обеспечивает гарантии упорядочения, поэтому является лишь редкой альтернативой compareAndSet.
- Параметры:
-
expect- ожидаемое значение -
update- новое значение - Возвращает:
-
trueесли успешно
getAndSet
public final V getAndSet(V newValue)
Атомарно устанавливает заданное значение и возвращает старое значение.
- Параметры:
-
newValue- новое значение - Возвращает:
- предыдущее значение
getAndUpdate
public final V getAndUpdate(UnaryOperator<V> updateFunction)
Атомарно обновляет текущее значение результатом применения заданной функции, возвращая предыдущее значение. Функция не должна иметь побочных эффектов, так как она может быть повторно применена, когда попытки обновлений завершаются неудачей из-за конкуренции между потоками.
- Параметры:
-
updateFunction- функция без побочных эффектов - Возвращает:
- предыдущее значение
- С тех пор:
- 1.8
updateAndGet
public final V updateAndGet(UnaryOperator<V> updateFunction)
Атомарно обновляет текущее значение результатом применения заданной функции, возвращая обновлённое значение. Функция не должна иметь побочных эффектов, так как она может быть повторно применена, когда попытки обновлений завершаются неудачей из-за конкуренции между потоками.
- Параметры:
-
updateFunction- функция без побочных эффектов - Возвращает:
- обновлённое значение
- С тех пор:
- 1.8
getAndAccumulate
public final V getAndAccumulate(V x,
BinaryOperator<V> accumulatorFunction) Атомарно обновляет текущее значение результатом применения заданной функции к текущему и заданному значениям, возвращая предыдущее значение. Функция не должна иметь побочных эффектов, так как она может быть повторно применена, когда попытки обновлений завершаются неудачей из-за конкуренции между потоками. Функция применяется к текущему значению в качестве первого аргумента и заданному обновлению в качестве второго аргумента.
- Параметры:
-
x- значение обновления -
accumulatorFunction- функция без побочных эффектов от двух аргументов - Возвращает:
- предыдущее значение
- С тех пор:
- 1.8
accumulateAndGet
public final V accumulateAndGet(V x,
BinaryOperator<V> accumulatorFunction) Атомарно обновляет текущее значение результатом применения заданной функции к текущему и заданному значениям, возвращая обновлённое значение. Функция не должна иметь побочных эффектов, так как она может быть повторно применена, когда попытки обновлений завершаются неудачей из-за конкуренции между потоками. Функция применяется к текущему значению в качестве первого аргумента и заданному обновлению в качестве второго аргумента.
- Параметры:
-
x- значение обновления -
accumulatorFunction- функция без побочных эффектов от двух аргументов - Возвращает:
- обновлённое значение
- С тех пор:
- 1.8
toString
public String toString()
Возвращает строковое представление текущего значения.
© 1993, 2020, 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.