利用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;

}

上一篇下一篇

猜你喜欢

热点阅读