📅  最后修改于: 2023-12-03 15:16:20.379000             🧑  作者: Mango
在 Java 中,AtomicLongArray 类提供了一种原子更新长整型数组元素的方式。该类中的 getAndDecrement() 方法可以获取并减少指定位置的元素的值,因此可以实现线程安全的计数器等功能。
public final long getAndDecrement(int i)
下面是一个简单的示例,演示了如何使用 AtomicLongArray 类及其 getAndDecrement() 方法。
import java.util.concurrent.atomic.AtomicLongArray;
public class Main {
public static void main(String[] args) {
// 创建一个包含 5 个元素的 AtomicLongArray 对象,所有元素的初始值均为 0
AtomicLongArray array = new AtomicLongArray(5);
System.out.println("原始数组元素:" + array);
// 将第 2 个元素的值减 1,并获取减少前的旧值
long oldValue = array.getAndDecrement(2);
System.out.println("第 2 个元素的旧值:" + oldValue);
System.out.println("减少后的数组元素:" + array);
}
}
输出结果如下:
原始数组元素:[0, 0, 0, 0, 0]
第 2 个元素的旧值:0
减少后的数组元素:[0, 0, -1, 0, 0]
在上面的示例中,我们创建了一个包含 5 个元素的 AtomicLongArray 对象,并将所有元素的初始值设置为 0。然后,使用 getAndDecrement() 方法将第 2 个元素的值减 1,并获取减少前的旧值。最后,打印减少后的数组元素。可以看到,第 2 个元素的值从 0 减少到了 -1。