volatile是Java 虚拟机提供的轻量级的同步机制
1、volatile 三大特性
①保证可见性
②不保证原子性
③禁止指令排序
2、volatile 应用案例
package pattern.singleton;
public class LazySignleton {
//double check lock (双重检查锁)
private static volatile LazySignleton instance = null;
//将构造函数私有化,阻止外部直接实例化对象
private LazySignleton(){
}
//向外提供访问该类对象的方法
public static LazySignleton getInstance(){
if(instance == null){
synchronized (LazySignleton.class) {
if(instance == null){
instance = new LazySignleton();
}
}
}
return instance;
}
}