Método AtomicLongArray compareAndSet() en Java con ejemplos

Java.util.concurrent.atomic.AtomicLongArray.compareAndSet () es un método incorporado en Java que establece atómicamente el elemento en una posición en el valor actualizado dado si el valor actual es igual al valor esperado. Este método toma el valor del índice, el valor esperado y el valor de actualización como parámetros y devuelve un valor booleano que indica si el valor se ha actualizado.

Sintaxis:

public final boolean compareAndSet(int i, espera larga, actualización larga)

Parámetros: La función acepta tres parámetros:

  • i : El índice donde se va a realizar la operación.
  • expect : El valor esperado para verificar si es igual al valor actual.
  • actualizar : el valor que se actualizará.
  • Valor devuelto: la función devuelve un valor booleano que indica si el valor se ha actualizado. Devuelve verdadero si tiene éxito, de lo contrario devuelve falso indicando que el valor actual no era igual al valor esperado.

    Los siguientes programas ilustran el método anterior:
    Programa 1:

    // Java program that demonstrates
    // the compareAndSet() function
      
    import java.util.concurrent.atomic.AtomicLongArray;
      
    public class GFG {
        public static void main(String args[])
        {
            // Initializing an array
            long a[] = { 1, 2, 3, 4, 5 };
      
            // Initializing an AtomicLongArray with array a
            AtomicLongArray arr = new AtomicLongArray(a);
      
            // Displaying the AtomicLongArray
            System.out.println("The array : " + arr);
      
            // Index where operation is performed
            int idx = 3;
      
            // Value to expect at idx
            long expect = 4;
      
            // Value to update if current value
            // is equal to expected value
            long update = 40;
      
            // Updating the value at idx
            // applying compareAndSet
            arr.compareAndSet(idx, expect, update);
      
            // Displaying the AtomicLongArray
            System.out.println("The array after update : "
                               + arr);
        }
    }
    
    Producción:

    The array : [1, 2, 3, 4, 5]
    The array after update : [1, 2, 3, 40, 5]
    

    Programa 2:

    // Java program that demonstrates
    // the compareAndSet() function
      
    import java.util.concurrent.atomic.AtomicLongArray;
      
    public class GFG {
        public static void main(String args[])
        {
            // Initializing an array
            long a[] = { 1, 2, 3, 4, 5 };
      
            // Initializing an AtomicLongArray with array a
            AtomicLongArray arr = new AtomicLongArray(a);
      
            // Displaying the AtomicLongArray
            System.out.println("The array : " + arr);
      
            // Index where operation is performed
            int idx = 3;
      
            // Value to expect at idx
            long expect = 40;
      
            // Value to update if current value
            // is equal to expected value
            long update = 4;
      
            // Updating the value at
            // idx applying compareAndSet
            arr.compareAndSet(idx, expect, update);
      
            // Displaying the AtomicLongArray
            System.out.println("The array after update : "
                               + arr);
        }
    }
    
    Producción:

    The array : [1, 2, 3, 4, 5]
    The array after update : [1, 2, 3, 4, 5]
    

    Referencia:
    https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLongArray.html#compareAndSet-int-long-long-

    Publicación traducida automáticamente

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