📅  最后修改于: 2023-12-03 15:31:49.931000             🧑  作者: Mango
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()
方法正常工作。同时,由于该方法是原子性的,因此可以确保在多线程环境下的正确性。