volatile 能使得一个非原子操作变成原子操作吗

可以。使用volatile修饰的变量,线程在每次使用的时候,都会读取变量修改后最后的值。

例如一个典型的例子实在类中有long类型的成员变量。如果该变量被多个线程访问好把该

变量设置 为volatile,为什么,因为java读取long类型的变量,不是原子的,需要分两步

如果一个线程正在修改long变量值,另一个线程可能看到该值的一半(32位),但是对

volatile型的long或double变量的读写是原子。

posted on 2017-05-20 09:47  辰_雨_  阅读(409)  评论(0编辑  收藏  举报

导航