AtomicLong getAndSet() method in Java with examples

The Java.util.concurrent.atomic.AtomicLong.getAndSet() is an inbuilt method in java that sets the given value to the value passed in the parameter and returns the value before updation which is of data-type long.
Syntax:
public final long getAndSet(long val)
Parameters: The function accepts a single mandatory parameter val which specifies the value to be updated.
Return value: The function returns the value before update operation is performed to the previous value.
Below programs illustrate the above method:
Program 1:
// Java program that demonstrates// the getAndSet() 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);          // Updates and sets        long res            = val.getAndSet(10);          System.out.println("Previous value: "                           + res);          // Prints the updated value        System.out.println("Current value: "                           + val);    }} |
Output:
Previous value: 0 Current value: 10
Program 2:
// Java program that demonstrates// the getAndSet() function  import java.util.concurrent.atomic.AtomicLong;  public class GFG {    public static void main(String args[])    {          // Initially value as 18        AtomicLong val = new AtomicLong(18);          // Gets and updates        long res = val.getAndSet(12);          System.out.println("Previous value: "                           + res);        // Prints the updated value        System.out.println("Current value: "                           + val);    }} |
Output:
Previous value: 18 Current value: 12
Reference: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html#getAndSet–



