volatile保证共享变量的内存可见性:
volatile修饰了一个成员变量后,这个变量的读写就会比普通变量多一些步骤。
当被volatile修饰的变量进行写操作时,这个变量将会被直接写入共享内存,而非线程的专属存储空间。
当读取一个被volatile修饰的变量时,会直接从共享内存中读,而非线程专属的存储空间中读。
通过对volatile变量读写的限制,就能保证线程每次读到的都是最新的值,从而确保了该变量的内存可见性。
volatile是一个特殊的修饰符,只有成员变量才能使用它。在Java并发程序缺少同步类的情况下,多线程对成员变量的操作对其它线程是透明的。volatile变量可以保证下一个读取操作会在前一个写操作之后发生。
volatile的使用:
public volatile boolean flag;
网友评论