for (int i = 0; i < 10; i++) {
System.out.println(incrementAndGetModulo(3));
}
private static AtomicInteger nextIndex = new AtomicInteger(6);
public static int incrementAndGetModulo(int modulo) {
for (; ; ) {
int current = nextIndex.get();
int next = (current + 1) % modulo;
if (nextIndex.compareAndSet(current, next) && current < modulo) {
return current;
}
}
}
02-08
2931
07-26