AtomicLongArray compareAndSet() method in Java with Examples
Last Updated :
05 Feb, 2019
The Java.util.concurrent.atomic.AtomicLongArray.compareAndSet() is an inbuilt method in java that atomically sets the element at a position to the given updated value if the current value is equal to the expected value. This method takes the index value, the expected value and the update value as the parameters and returns a boolean value stating if the value has been updated.
Syntax:
public final boolean compareAndSet(int i, long expect, long update)
Parameters: The function accepts three parameters:
i: The index where operation is to be made.
expect: The expected value to check if it is equal to current value.
update: The value to be updated.
Return value: The function returns a boolean value stating if the value has been updated. It returns true if successful, else it returns false indicating that the current value was not equal to the expected value.
Below programs illustrate the above method:
Program 1:
import java.util.concurrent.atomic.AtomicLongArray;
public class GFG {
public static void main(String args[])
{
long a[] = { 1 , 2 , 3 , 4 , 5 };
AtomicLongArray arr = new AtomicLongArray(a);
System.out.println( "The array : " + arr);
int idx = 3 ;
long expect = 4 ;
long update = 40 ;
arr.compareAndSet(idx, expect, update);
System.out.println( "The array after update : "
+ arr);
}
}
|
Output:
The array : [1, 2, 3, 4, 5]
The array after update : [1, 2, 3, 40, 5]
Program 2:
import java.util.concurrent.atomic.AtomicLongArray;
public class GFG {
public static void main(String args[])
{
long a[] = { 1 , 2 , 3 , 4 , 5 };
AtomicLongArray arr = new AtomicLongArray(a);
System.out.println( "The array : " + arr);
int idx = 3 ;
long expect = 40 ;
long update = 4 ;
arr.compareAndSet(idx, expect, update);
System.out.println( "The array after update : "
+ arr);
}
}
|
Output:
The array : [1, 2, 3, 4, 5]
The array after update : [1, 2, 3, 4, 5]
Reference:
https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLongArray.html#compareAndSet-int-long-long-
Share your thoughts in the comments
Please Login to comment...