📜  Java的LongAccumulator getThenReset() 方法和示例(1)

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

Java的LongAccumulator getThenReset() 方法和示例

getThenReset() 方法是 java.util.concurrent.atomic.LongAccumulator 类中的一个方法,用于获取累加器当前的值并将其重置为初始值。这个方法返回累加器当前的值。

累加器的初始值可以通过 LongAccumulator(long identity) 构造方法来设置。每次调用累加器的 accumulate(long x) 方法时,都会将 x 加到累加器的当前值上。

以下是 getThenReset() 方法的签名:

public long getThenReset()

下面是一个使用 getThenReset() 方法的示例:

import java.util.concurrent.atomic.LongAccumulator;

public class LongAccumulatorExample {
    public static void main(String[] args) {
        LongAccumulator accumulator = new LongAccumulator((x, y) -> x + y, 0);

        accumulator.accumulate(10);
        accumulator.accumulate(20);
        accumulator.accumulate(30);

        long result = accumulator.getThenReset();

        System.out.println(result); // 输出:60
    }
}

在这个示例中,我们创建了一个 LongAccumulator 对象,并使用 (x, y) -> x + y 作为累加器的操作函数。然后我们三次调用了 accumulate() 方法来增加累加器的值。最后,我们调用 getThenReset() 方法来获取当前累加器的值并将其重置为初始值。

输出结果为 60,即输入的 10、20 和 30 的总和。因为我们在调用 getThenReset() 方法之后,累加器的值被重置为 0,所以如果我们再次调用 getThenReset() 方法,它将返回 0。

以上就是 LongAccumulator getThenReset() 方法和示例的介绍,希望对你有所帮助。