AtomicReferenceFieldUpdater.GetAndAccumulate Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Атомарным образом обновляет (с эффектами памяти, указанными в ) VarHandle#compareAndSet
поле заданного объекта, управляемого этим методом обновления, с результатами применения данной функции к текущим и заданным значениям, возвращая предыдущее значение.
[Android.Runtime.Register("getAndAccumulate", "(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BinaryOperator;)Ljava/lang/Object;", "", ApiSince=24)]
public Java.Lang.Object? GetAndAccumulate (Java.Lang.Object? obj, Java.Lang.Object? x, Java.Util.Functions.IBinaryOperator? accumulatorFunction);
[<Android.Runtime.Register("getAndAccumulate", "(Ljava/lang/Object;Ljava/lang/Object;Ljava/util/function/BinaryOperator;)Ljava/lang/Object;", "", ApiSince=24)>]
member this.GetAndAccumulate : Java.Lang.Object * Java.Lang.Object * Java.Util.Functions.IBinaryOperator -> Java.Lang.Object
Параметры
- obj
- Object
Объект , поле которого необходимо получить и задать.
- x
- Object
значение обновления
- accumulatorFunction
- IBinaryOperator
функция без побочных эффектов с двумя аргументами
Возвращаемое значение
предыдущее значение
- Атрибуты
Комментарии
Атомарным образом обновляет (с эффектами памяти, указанными в ) VarHandle#compareAndSet
поле заданного объекта, управляемого этим методом обновления, с результатами применения данной функции к текущим и заданным значениям, возвращая предыдущее значение. Функция должна быть без побочных эффектов, так как она может быть повторно применена при сбое обновления из-за состязания между потоками. Функция применяется с текущим значением в качестве первого аргумента и заданным обновлением в качестве второго аргумента.
Добавлено в версии 1.8.
Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.