import java.util.concurrent.atomic.AtomicInteger;
class AtomicCounter
{
private AtomicInteger c = new AtomicInteger(0);
public void increment()
{
c.incrementAndGet();
}
public void decrement()
{
c.decrementAndGet();
}
public int GetValue()
{
return c.get();
}
}
x=1:因为x是int型,在32位cpu上int占32位,在x86硬件上直接提供了原子性支持。
x++和++x:x86会将这条语句翻译成3条汇编指令:将x的值从内存中读取到寄存器,对寄存器加1,再把新值写会x所在的内存地址。所以需要进行同步。