利用Atomic 实现 线程安全的 自增函数
2019-03-12 本文已影响0人
搬砖中年人
private static AtomicInteger ai = new AtomicInteger(0);// Atomic
/*
* 序列最大值 暂时按照5000万流量统计
*/
private static final int maxValue = 10000 * 5000;
/**
* 序列 自增(保证原子性 )(高效)
*/
public static int getSequence() {
int next = ai.incrementAndGet();
if (next > maxValue) {
synchronized (ai) {
if (ai.get() > maxValue) {
ai.set(0);
next = ai.incrementAndGet();
} else {
next = ai.incrementAndGet();
}
}
}
return next;
}