Java多线程的Atomic 和 Volatile

Atomic同时解决了可见性及原子性:

可见性即不同线程在调用同一对象时,得到的是最终对象而非对象的复制。

compareAndSwapObject()方法则解决了原子性,即比较交换。


Volatile是一种轻型的synchronization.

可见性:线程调用变量时直接调用对象而非其复制。

但没有涉及到原子性。


所以,多线程操作时,Volatile不保证完全同步。

你可能感兴趣的:(java,多线程)