Método AtomicReferenceArray getAndUpdate() en Java con ejemplos

El método getAndUpdate() de una clase AtomicReferenceArray se usa para actualizaciones atómicas que actualizan el valor actual de AtomicReferenceArray aplicando la operación updateFunction especificada en el valor actual. Toma un objeto de la interfaz updateFunction como su parámetro y aplica la operación especificada en el objeto al valor actual. Devuelve el valor anterior.
Sintaxis: 
 

public final E 
  getAndUpdate(int i, 
    UnaryOperator<E> updateFunction)

Parámetros: Este método acepta: 
 

  • index i para actualizar el valor del índice y
  • updateFunction, que es una función sin efectos secundarios.

Valor devuelto: este método devuelve el valor anterior .
Los siguientes programas ilustran el método getAndUpdate(): 
Programa 1: 
 

Java

// Java program to demonstrate
// AtomicReferenceArray.getAndUpdate() method
 
import java.util.concurrent.atomic.*;
import java.util.function.UnaryOperator;
 
public class GFG {
    public static void main(String args[])
    {
        // an array
        String a[]
            = { "GFG", "JS",
                "PYTHON", "JAVA" };
 
        // AtomicReferenceArray with array
        AtomicReferenceArray<String> array
            = new AtomicReferenceArray<>(a);
 
        // Print AtomicReferenceArray
        System.out.println(
            "The AtomicReferenceArray before update : "
            + array);
 
        // Index
        int index = 2;
 
        // Declaring the accumulatorFunction
        // applying function
        UnaryOperator add
            = (u) -> u.toString() + " and ML";
 
        // apply getAndUpdate()
        String value
            = array.getAndUpdate(index, add);
 
        // print AtomicReferenceArray
        System.out.println("previous value of index 2:"
                           + value);
        System.out.println("The AtomicReferenceArray "
                           + "after update: "
                           + array);
    }
}
Producción: 

 

Programa 2: 
 

Java

// Java program to demonstrate
// AtomicReferenceArray.getAndUpdate() method
 
import java.util.concurrent.atomic.*;
import java.util.function.UnaryOperator;
 
public class GFG {
    public static void main(String args[])
    {
        // an array
        Integer a[] = { 213, 1234, 4543, 345 };
 
        // AtomicReferenceArray with array
        AtomicReferenceArray<Integer> array
            = new AtomicReferenceArray(a);
 
        // Print AtomicReferenceArray
        System.out.println(
            "The AtomicReferenceArray"
            + " before update : "
            + array);
        // Index
        int index = 2;
 
        // Declaring the accumulatorFunction
        // applying function
        UnaryOperator add
            = (u) -> Integer.parseInt(u.toString()) * 200;
 
        // apply getAndUpdate()
        int value = array.getAndUpdate(index, add);
 
        // print AtomicReferenceArray
        System.out.println("previous value of index 2:"
                           + value);
        System.out.println("updated value of index 2:"
                           + array.get(2));
        System.out.println("The AtomicReferenceArray "
                           + "after update: "
                           + array);
    }
}
Producción: 

 

Referencias: https://docs.oracle.com/javase/10/docs/api/java/util/concurrent/atomic/AtomicReferenceArray.html#getAndUpdate(java.util.function.UnaryOperator)
 

Publicación traducida automáticamente

Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *