Wednesday, July 3, 2024
HomeLanguagesJavaAtomicLong getAndSet() method in Java with examples

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–

Nokonwaba Nkukhwana
Experience as a skilled Java developer and proven expertise in using tools and technical developments to drive improvements throughout a entire software development life cycle. I have extensive industry and full life cycle experience in a java based environment, along with exceptional analytical, design and problem solving capabilities combined with excellent communication skills and ability to work alongside teams to define and refine new functionality. Currently working in springboot projects(microservices). Considering the fact that change is good, I am always keen to new challenges and growth to sharpen my skills.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments