Java中的 AtomicReferenceArray setOpaque() 方法及示例
AtomicReferenceArray类的setOpaque()方法用于将索引 i 处的元素的值设置为 newValue。索引 i 和 newValue 都作为参数传递给该方法。此方法使用 VarHandle.setOpaque(Java.lang.Object…) 指定的记忆效应设置值。以这种方式,值是按程序顺序设置的,但不保证相对于其他线程的内存排序效果。
句法:
public final void setOpaque(int i, E newValue)
参数:此方法接受:
- i是执行操作的 AtomicReferenceArray 的索引,
- newValue是要设置的新值。
返回值:此方法不返回任何内容。
下面的程序说明了 setOpaque() 方法:
方案一:
// Java program to demonstrate
// setOpaque() method
import java.util.concurrent.atomic.*;
public class GFG {
public static void main(String[] args)
{
// create an atomic reference object.
AtomicReferenceArray ref
= new AtomicReferenceArray(5);
// set some value and print
ref.setOpaque(0, 1324);
ref.setOpaque(1, 144);
ref.setOpaque(2, 322);
System.out.println("Value of index 0 = "
+ ref.get(0));
System.out.println("Value of index 1 = "
+ ref.get(1));
System.out.println("Value of index 2 = "
+ ref.get(2));
}
}
输出:
方案二:
// Java program to demonstrate
// setOpaque() method
import java.util.concurrent.atomic.*;
public class GFG {
public static void main(String[] args)
{
// create an atomic reference object.c
AtomicReferenceArray ref
= new AtomicReferenceArray(5);
// set some value
ref.setOpaque(0, "C");
ref.setOpaque(1, "PYTHON");
ref.setOpaque(2, "TS");
ref.setOpaque(3, "C++");
ref.setOpaque(4, "C");
// print
for (int i = 0; i < 5; i++) {
System.out.println(ref.get(i));
}
}
}
输出:
参考: https: Java/util/concurrent/atomic/AtomicReferenceArray.html#setOpaque(int, E)