📅  最后修改于: 2023-12-03 14:42:49.616000             🧑  作者: Mango
在Java 8中,Java.util.concurrent中引入了LongAdder类。在高并发环境中,LongAdder是原子累加器的高效并发实现(可以理解为ConcurrentHashMap与AtomicLong的混合)。
它通过在内部维护一个当前总和和多个本地总和(以线程为基础),从而避免了单点争用的问题,提高了并发度,并提供了一些特殊操作以进行高度并发计数。
reset()方法用于将该LongAdder实例的当前值重置为零。
下面是reset()方法的示例使用:
import java.util.concurrent.atomic.LongAdder;
public class LongAdderDemo {
public static void main(String[] args) {
LongAdder longAdder = new LongAdder();
longAdder.add(10);
longAdder.add(20);
System.out.println("当前值:" + longAdder.sum());
longAdder.reset();
System.out.println("重置后的值:" + longAdder.sum());
}
}
输出结果:
当前值:30
重置后的值:0
通过使用LongAdder类,我们可以在高并发的环境下进行原子操作的高效计数,并使用reset()方法来重置当前值。尽管在单线程中性能可能不如AtomicLong,但在高并发环境中它是更好的选择。