📅  最后修改于: 2023-12-03 15:31:50.014000             🧑  作者: Mango
在Java中,AtomicLongArray是一种用于并发操作的long类型数组。它提供了一些原子操作方法,包括在不使用锁的情况下进行原子递增和原子递减操作。其中,decrementAndGet()
方法可用于将某个元素的值原子递减1,并返回递减后的值。在本文中,我们将详细介绍decrementAndGet()
方法的使用方式。
public final long decrementAndGet(int i)
该方法接收一个int类型参数i,表示要递减的元素的索引值。方法会将该元素的值原子递减1,并返回递减后的值。
import java.util.concurrent.atomic.AtomicLongArray;
public class AtomicLongArrayDemo {
public static void main(String[] args) {
AtomicLongArray array = new AtomicLongArray(new long[]{1, 2, 3, 4, 5});
// 递减索引为2的元素,并返回递减后的值
long result = array.decrementAndGet(2);
System.out.println("递减后的结果为:" + result); // 输出:递减后的结果为:2
// 输出递减后的数组
for (int i = 0; i < array.length(); i++) {
System.out.println("第" + i + "个元素的值为:" + array.get(i));
}
}
}
该示例代码创建了一个AtomicLongArray对象,其中包含了5个元素的long类型数组。然后,它使用decrementAndGet()
方法将索引为2的元素的值原子递减1,并返回递减后的值。最后,它遍历整个数组,输出了所有元素的值,以验证递减操作是否成功。
decrementAndGet()
方法是一个原子操作,可以保证在多线程环境下,多个线程同时操作该元素时不会出现数据竞争的情况。decrementAndGet()
方法会将被操作元素的值原子递减1。如果不需要返回递减后的值,可以使用decrement()
方法进行原子递减。decrementAndGet()
方法只能用于AtomicLongArray类型的对象,并且仅支持long类型的元素。如果需要操作其他类型的数据,可以考虑使用AtomicIntegerArray、AtomicReferenceArray等类型的数组。