Método AtomicLong débilCompareAndSet() en Java con ejemplos

Java.util.concurrent.atomic.AtomicLong.weakCompareAndSet () es un método incorporado en Java que establece el valor en el valor pasado en el parámetro si el valor actual es igual al valor esperado que también se pasa en el parámetro. La función devuelve un valor booleano que nos da una idea de si la actualización se realizó o no. 

Sintaxis: 

public final boolean weakCompareAndSet(long expect,
                                       long val)

Parámetros: La función acepta dos parámetros obligatorios que se describen a continuación:  

  • expect: especifica el valor que debe tener el objeto atómico.
  • val: especifica el valor que se actualizará si el valor atómico más largo es igual al esperado.

Valor devuelto: la función devuelve un valor booleano, devuelve verdadero en caso de éxito, de lo contrario, devuelve falso. 

Los siguientes programas ilustran el método anterior:

Programa 1:  

Java

// Java program that demonstrates
// the weakCompareAndSet() function
 
import java.util.concurrent.atomic.AtomicLong;
 
public class GFG {
    public static void main(String args[])
    {
 
        // Initially value as 0
        AtomicLong val = new AtomicLong(0);
 
        // Prlongs the updated value
        System.out.println("Previous value: "
                           + val);
 
        // Checks if previous value was 0
        // and then updates it
        boolean res
            = val.weakCompareAndSet(0, 6);
 
        // Checks if the value was updated.
        if (res)
            System.out.println("The value was "
                               + "updated and it is "
                               + val);
        else
            System.out.println("The value was "
                               + "not updated");
    }
}
Producción: 

Previous value: 0
The value was updated and it is 6

 

Programa 2: 

Java

// Java program that demonstrates
// the weakCompareAndSet() function
 
import java.util.concurrent.atomic.AtomicLong;
 
public class GFG {
    public static void main(String args[])
    {
 
        // Initially value as 0
        AtomicLong val = new AtomicLong(0);
 
        // Prlongs the updated value
        System.out.println("Previous value: "
                           + val);
 
        // Checks if previous value was 0
        // and then updates it
        boolean res
            = val.weakCompareAndSet(10, 6);
 
        // Checks if the value was updated.
        if (res)
            System.out.println("The value was "
                               + "updated and it is "
                               + val);
        else
            System.out.println("The value was "
                               + "not updated");
    }
}
Producción: 

Previous value: 0
The value was not updated

 

Referencia: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html#weakCompareAndSet–
 

Publicación traducida automáticamente

Artículo escrito por gopaldave 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 *