我有以下的场景:
这是一段简单的代码,我在这里展示它以澄清我的疑虑:
public void callMe()
{
AtomicInteger howManyOdds = new AtomicInteger(0);
AtomicInteger howManyEvens = new AtomicInteger(0);
loopThrough(100,howManyOdds,howManyEvens);
System.out.println(howManyOdds.get()+" "+howManyEvens.get());
}
private void loopThrough(int counter,AtomicInteger howManyOdds,AtomicInteger howManyEvens)
{
for(int i = 1 ; i <= counter ;i++)
{
if(i%2 == 0)
howManyEvens.getAndAdd(1);
else
howManyOdds.getAndAdd(1);
}
}
我知道可以用int[]
来实现,但是看起来有点奇怪。在这种情况下,AtomicInteger是否是可替代的可变整数? 如果不是,为什么?
int[2]
将表现更好。 - assylias