volatile 变量和 atomic 变量有什么不同?

提问者:帅平 问题分类:面试刷题

volatile 变量和 atomic 变量有什么不同?

1 个回答
Rae
Rae 管理员

这是个有趣的问题。首先,volatile 变量和 atomic 变量看起来很像,但功能却不一样。Volatile变量可以确保先行关系,即写操作会发生在后续的读操作之前, 但它并不能保证原子性。例如用volatile修饰count变量那么 count++ 操作就不是原子性的。而AtomicInteger类提供的atomic方法可以让这种操作具有原子性如getAndIncrement()方法会原子性的进行增量操作把当前值加一,其它数据类型和引用变量也可以进行相似操作。

发布于:1个月前 (10-20)
我来回答