我们如何使用AtomicInteger进行有限的序列生成,假设序列号必须在1到60之间.一旦序列达到60,它必须从1开始.我写了这段代码虽然不太确定这是否是线程安全的?
public int getNextValue()
{
int v;
do
{
v = val.get();
if ( v == 60)
{
val.set(1);
}
}
while (!val.compareAndSet(v , v + 1));
return v + 1;
}
Run Code Online (Sandbox Code Playgroud)