是的,volatile可以保证同步性。 volatile是一个Java关键字,用于确保变量的可见性以及禁止CPU缓存和编译器优化。
volatile的本意是“易变的”,不过翻译成“直接存取原始内存地址”更为合适。
但是,volatile并不能保证原子性。 这是因为volatile变量只能保证对变量的读写操作不会被重排,但是它并不能保证这个操作是原子的。 例如,如果一个操作是对一个volatile变量进行加法操作,那么这个操作就不是原子的。
1、volatile是一个特征修饰符(typespecifier)volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。