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

📅  最后修改于: 2023-12-03 15:31:49.931000             🧑  作者: Mango

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

简介

AtomicLong是Java中提供的原子操作类,它提供了一系列方法可以对long类型数值进行原子性的操作。其中,getAndDecrement()方法可以获取当前值并将其减一。该方法是原子性的,因此能够确保多个线程对同一变量进行操作时,不会出现竞态条件,从而避免了数据不一致的问题。

方法定义

getAndDecrement()方法的定义如下:

public final long getAndDecrement()

该方法会将当前值减一,并返回减一前的值。

示例

下面是一个示例程序,展示了如何使用AtomicLong类的getAndDecrement()方法:

import java.util.concurrent.atomic.AtomicLong;

public class GetAndDecrementExample {
    public static void main(String[] args) {
        AtomicLong counter = new AtomicLong(10);

        System.out.println("Counter before: " + counter.get());
        long result = counter.getAndDecrement();
        System.out.println("Result: " + result);
        System.out.println("Counter after: " + counter.get());
    }
}

运行结果为:

Counter before: 10
Result: 10
Counter after: 9

首先,我们创建了一个初始值为10的AtomicLong对象counter。接着,我们使用getAndDecrement()方法将其值减一,并将减一前的值赋值给变量result。最后,我们打印了减一前后的值。从输出结果可以看出,减一前的值为10,减一后的值为9,说明getAndDecrement()方法正常工作。同时,由于该方法是原子性的,因此可以确保在多线程环境下的正确性。