单例模式volatile

java实现单例模式的方式有很多种,常见的有通过枚举,饿汉式,懒汉式。懒汉式一般需要double check。 需要注意的事情,这种单例模式,单例对象声明的时候需要加volatile关键字,确保在单例对象实例化的过程中不会发生重排序导致其他线程获取到一个未完成初始化的对象,原理如下图: 出现上图这种情况:instance指针指向对象的指令发生在对象的初始化之前,那就会出现并发问题。
相关文章
相关标签/搜索