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

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

Java中的 AtomicLongArray getAndAdd() 方法及示例

介绍

Java中的AtomicLongArray类提供了一种在多线程环境下进行原子性操作的方式。该类中的getAndAdd(int i, long delta)方法可以将指定数组下标的元素与delta进行相加,并返回相加前的值。该操作是原子性的,因此可以避免出现竞态条件。

方法签名
public final long getAndAdd(int i, long delta)
  • i:要进行相加操作的元素的下标
  • delta:要相加的值
示例
import java.util.concurrent.atomic.AtomicLongArray;

public class Main {
    public static void main(String[] args) {
        long[] initialValues = {0L, 1L, 2L, 3L};
        AtomicLongArray array = new AtomicLongArray(initialValues);

        // 在下标为1的元素上执行getAndAdd操作
        long result = array.getAndAdd(1, 5L);
        System.out.println("result = " + result);   // 输出 previous value = 1
        System.out.println("array = " + array);     // 输出 array = [0, 6, 2, 3]
    }
}

上述示例中,首先创建了一个长度为4的AtomicLongArray,并将其初始化为{0, 1, 2, 3}。然后,在下标为1的元素上执行了getAndAdd操作,将其原值1与给定值5相加,并返回原值1。最后,输出了操作后的数组array。可以看到,下标为1的元素变成了6,其它元素不变。