📌  相关文章
📜  Java中的 AtomicIntegerArray getAndDecrement() 方法及示例(1)

📅  最后修改于: 2023-12-03 14:42:43.885000             🧑  作者: Mango

Java中的AtomicIntegerArray getAndDecrement()方法及示例

介绍

在Java中,AtomicIntegerArray是一个提供了原子操作的数组类。其中的getAndDecrement()方法可以原子性地获取特定位置的元素并将其减1。该方法的返回值为该位置的原值。

方法签名
public final int getAndDecrement(int i)
参数说明
  • i:要减少值的位置的索引(从零开始)。
返回值

方法执行前的位置i处的原值。

示例
import java.util.concurrent.atomic.AtomicIntegerArray;

public class AtomicIntegerArrayDemo {

    public static void main(String[] args) {
        AtomicIntegerArray atomicIntegerArray = new AtomicIntegerArray(new int[]{0, 1, 2, 3, 4});

        int index = 3;
        int originalValue = atomicIntegerArray.getAndDecrement(index);
        int newValue = atomicIntegerArray.get(index);

        System.out.println("原值:" + originalValue); //输出:原值:3
        System.out.println("新值:" + newValue); //输出:新值:2
    }
}

在上面的示例中,我们首先创建了一个长度为5的AtomicIntegerArray对象,其中的元素值从0到4。然后,我们调用getAndDecrement()方法来原子性地获取位置3的元素,并将其减1,最后输出了该位置原值和现值。

特别注意:

getAndDecrement()方法是一个原子操作,即执行该方法时,线程将对其它线程不可见,但对于线程自己而言,其结果仍然对其它线程可见。这可以避免由于多线程操作同一个位置而导致的数据不一致的问题。