Volatile vs Atomic
- 1、Volatile 变量
- 2、Atomic 变量
💖The Begin💖点点关注,收藏不迷路💖 |
volatile和atomic这两个关键字经常会出现在我们的视线中。它们虽然看似相似,实则功能大不相同。
1、Volatile 变量
-
作用:
确保变量的可见性,即一个线程修改了变量的值,其他线程能立即看到最新值。 -
不足:
不保证操作的原子性,如count++
可能不是原子的。 -
适用场景:
用于状态标记、控制循环等不需要原子性操作的场景。
2、Atomic 变量
-
作用:
既保证变量的可见性,又保证操作的原子性。 -
优点:
如AtomicInteger
的getAndIncrement()
方法,确保整个增加操作不被打断。 -
适用场景:
计数器、累加器等需要原子性操作的场景。
总结:
选择volatile
还是atomic
,取决于你是否需要操作的原子性。不需要就volatile
,需要就atomic
。
💖The End💖点点关注,收藏不迷路💖 |