The getOpaque() method of a AtomicReferenceArray class is used to return the value of the element at index i for this AtomicReferenceArray object with memory effects as specified by VarHandle.getOpaque(java.lang.Object...). This VarHandle.getOpaque(java.lang.Object...) method handles operation with no assurance of memory ordering effects with respect to other threads.
Syntax:
Java
Java
public final E getOpaque(int i)Parameters: This method accepts the index i to get the value. Return value: This method returns the current value at index i. Below programs illustrate the getOpaque() method: Program 1:
// Java program to demonstrate
// AtomicReferenceArray.getOpaque() method
import java.util.concurrent.atomic.*;
public class GFG {
public static void main(String[] args)
{
// create an atomic reference array
// object which stores Integer.
AtomicReferenceArray<Integer> array
= new AtomicReferenceArray<Integer>(5);
// set some value in array
array.set(0, 987);
array.set(1, 988);
array.set(2, 989);
array.set(3, 986);
// get and print the value
// using getOpaque method
for (int i = 0; i < 4; i++) {
int value = array.getOpaque(i);
System.out.println("value at "
+ i + " = "
+ value);
}
}
}
Output:
Program 2:
// Java program to demonstrate
// AtomicReferenceArray.getOpaque() method
import java.util.concurrent.atomic.*;
public class GFG {
public static void main(String[] args)
{
// create a array of Strings
String[] names
= { "AMAN", "AMAR", "SURAJ" };
// create an atomic reference object.
AtomicReferenceArray<String> array
= new AtomicReferenceArray<String>(names);
// get and print the value
// using getOpaque method
for (int i = 0; i < array.length(); i++) {
String value = array.getOpaque(i);
System.out.println("value at "
+ i + " = "
+ value);
}
}
}