小编sat*_*ish的帖子

AtomicInteger用于有限序列生成

我们如何使用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)

java atomic

7
推荐指数
2
解决办法
5929
查看次数

标签 统计

atomic ×1

java ×1