AtomicReference getAndSet() method in Java with Examples
The getAndSet() method of a AtomicReference class is used to atomically sets the value of AtomicReference object to newValue which is passed as parameter and returns the old value of the AtomicReference object, with memory effects as specified by VarHandle.getAndSet(java.lang.Object…).VarHandle.getAndSet(java.lang.Object…) specified that variable is handle as memory semantics of setting as if the variable was declared volatile.
Syntax:
public final V getAndSet?(V newValue)
Parameters: This method accepts newValue which is the new value.
Return value: This method returns the old value of AtomicReference.
Below programs illustrate the getAndSet() method:
Program 1:
Java
import java.util.concurrent.atomic.AtomicReference;
public class GFG {
public static void main(String[] args)
{
AtomicReference<Double> ref
= new AtomicReference<Double>();
ref.set( 1234.00 );
double oldValue
= ref.getAndSet(( double ) 3213 );
System.out.println( "OLD Value = "
+ oldValue);
System.out.println( "NEW Value = "
+ ref.get());
}
}
|
Output:
OLD Value = 1234.0
NEW Value = 3213.0
Program 2:
Java
import java.util.concurrent.atomic.AtomicReference;
public class GFG {
public static void main(String[] args)
{
AtomicReference<String> ref
= new AtomicReference<String>();
ref.set( "AtomicReference old value" );
String oldValue = ref.getAndSet(
"AtomicReference new value" );
System.out.println( "OLD Value = "
+ oldValue);
System.out.println( "NEW Value = "
+ ref.get());
}
}
|
Output:
OLD Value = AtomicReference old value
NEW Value = AtomicReference new value
References: https://docs.oracle.com/javase/10/docs/api/java/util/concurrent/atomic/AtomicReference.html#getAndSet(V)
Last Updated :
17 Sep, 2021
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...