Java - Volatile关键字的作用(八股)
·
作用:
- 对于可见性,Java提供了Volatile关键字来保证可见性和静止指令重排。volatile确保一个线程的修改对其他线程是可见的。当一个共享变量被volatile修饰时,它会保证修改的值会立即被更新到内存中,当有其他线程需要读取的时候,它会从内存中去读取
- 从实践角度而言,volatile的一个重要作用是和CAS结合,保证了原子性,例如在多线程的情况下数字的原子性问题(AtomicInteger)
- 还有在设计模式中的单例模式,为保证为单例,使用volatile来修饰Singleton。
单例模式代码:
//懒汉式单例模式
public class Singleton1 {
private static volatile Singleton1 instance = null;
private Singleton1(){
}
public static Singleton1 getInstance(){
if (instance == null) {
synchronized (Singleton1.class) {
if (instance == null) {
instance = new Singleton1();
}
}
}
return instance;
}
}
更多推荐




所有评论(0)