Método AtomicReference getAndSet() en Java con ejemplos

El método getAndSet() de una clase AtomicReference se utiliza para establecer atómicamente el valor del objeto AtomicReference en newValue, que se pasa como parámetro y devuelve el valor anterior del objeto AtomicReference, con efectos de memoria según lo especificado por VarHandle.getAndSet(java.lang. Object…).VarHandle.getAndSet(java.lang.Object…) especificó que la variable se maneja como semántica de configuración de memoria como si la variable se declarara volátil.
 

Sintaxis:  

public final V getAndSet?(V newValue)

Parámetros: este método acepta newValue, que es el nuevo valor.
Valor devuelto : este método devuelve el valor antiguo de AtomicReference.
Los siguientes programas ilustran el método getAndSet(): 
Programa 1:  

Java

// Java program to demonstrate
// AtomicReference.getAndSet() method
 
import java.util.concurrent.atomic.AtomicReference;
 
public class GFG {
    public static void main(String[] args)
    {
 
        // create an atomic reference object.
        AtomicReference<Double> ref
            = new AtomicReference<Double>();
 
        // set some value
        ref.set(1234.00);
 
        // get and replace value
        double oldValue
            = ref.getAndSet((double)3213);
 
        // print
        System.out.println("OLD Value = "
                           + oldValue);
        System.out.println("NEW Value = "
                           + ref.get());
    }
}
Producción: 

OLD Value = 1234.0
NEW Value = 3213.0

 

Programa 2: 

Java

// Java program to demonstrate
// AtomicReference.getAndSet() method
 
import java.util.concurrent.atomic.AtomicReference;
 
public class GFG {
    public static void main(String[] args)
    {
 
        // create an atomic reference object.
        AtomicReference<String> ref
            = new AtomicReference<String>();
 
        // set some value
        ref.set("AtomicReference old value");
 
        // get and replace value
        String oldValue = ref.getAndSet(
            "AtomicReference new value");
 
        // print
        System.out.println("OLD Value = "
                           + oldValue);
        System.out.println("NEW Value = "
                           + ref.get());
    }
}
Producción: 

OLD Value = AtomicReference old value
NEW Value = AtomicReference new value

 

Referencias: https://docs.oracle.com/javase/10/docs/api/java/util/concurrent/atomic/AtomicReference.html#getAndSet(V)

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 *