gpt4 book ai didi

java - 如何在 Java 中实现并发循环自动收报机(计数器)?

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:06 25 4
gpt4 key购买 nike

我想用 Java 实现一个循环计数器。每个请求的计数器应该增加(原子地)并且在达到上限时应该翻转到 0。

什么是最好的实现方式?是否有任何现有的实现方式?

最佳答案

AtomicInteger 上实现这样的计数器很容易:

public class CyclicCounter {

private final int maxVal;
private final AtomicInteger ai = new AtomicInteger(0);

public CyclicCounter(int maxVal) {
this.maxVal = maxVal;
}

public int cyclicallyIncrementAndGet() {
int curVal, newVal;
do {
curVal = this.ai.get();
newVal = (curVal + 1) % this.maxVal;
} while (!this.ai.compareAndSet(curVal, newVal));
return newVal;
}

}

关于java - 如何在 Java 中实现并发循环自动收报机(计数器)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7572434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com