El método AccumulateAndGet() de una clase AtomicReference se usa para actualizar atómicamente el valor actual de AtomicReference con los resultados de aplicar la AccumulatorFunction dada a los valores actuales y dados y devuelve el valor actualizado. AccumulatorFunction no debe tener efectos secundarios, ya que se puede volver a aplicar cuando fallan los intentos de actualización debido a la contención entre subprocesos.
Sintaxis:
public final E accumulateAndGet(E x, BinaryOperator<E> accumulatorFunction)
Parámetros: Este método acepta:
- x que es el valor actualizado y
- accumulatorFunction que es una función sin efectos secundarios de dos argumentos.
Valor devuelto: este método devuelve el valor actualizado.
Los siguientes programas ilustran el método AccumAndGet():
Programa 1:
// Java program to demonstrate // AtomicReference.accumulateAndGet() method import java.util.concurrent.atomic.AtomicReference; import java.util.function.BinaryOperator; public class GFG { public static void main(String args[]) { // AtomicReference with value AtomicReference<Integer> ref = new AtomicReference<>(3456); // Print AtomicReference System.out.println( "The AtomicReference before update: " + ref); // Value to apply accumulateAndGet int x = 45654; // Declaring the accumulatorFunction // applying function to add value as string BinaryOperator add = (u, v) -> u.toString() + v.toString(); // apply accumulateAndGet() ref.accumulateAndGet(x, add); // print AtomicReference System.out.println( "The AtomicReference after update: " + ref); } }
Programa 2:
// Java program to demonstrate // AtomicReference.accumulateAndGet() method import java.util.concurrent.atomic.AtomicReference; import java.util.function.BinaryOperator; public class GFG { public static void main(String args[]) { // AtomicReference with value AtomicReference<String> ref = new AtomicReference<String>("GFG "); // Print AtomicReference System.out.println("The AtomicReference before update: " + ref); // Value to apply accumulateAndGet String x = "Welcome"; // Declaring the accumulatorFunction // applying function to add value as string BinaryOperator add = (u, v) -> v + " to " + u; // apply accumulateAndGet() ref.accumulateAndGet(x, add); // print AtomicReference System.out.println( "The AtomicReference after update: " + ref); } }
Publicación traducida automáticamente
Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA