首页 > 代码库 > Java单例模式实现(线程安全)
Java单例模式实现(线程安全)
1 package com.javaee.corejava; 2 /** 3 * 线程安全的单例模式 4 * @author miaoyf 5 * 6 */ 7 public class Singleton { 8 /** 9 * 私有静态常量单例对象10 * volatile:11 * 用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),12 * 线程中对A的访问其实访问的是B。13 * 只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。14 * volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A)15 */16 private static volatile Singleton instance=null;17 /**18 * 私有化构造函数,防止通过构造函数被初始化19 */20 private Singleton(){21 22 }23 /**24 * 返回单例实例25 */26 public static Singleton getInstance(){27 if(instance==null){28 synchronized (Singleton.class) {29 if(instance==null){30 instance=new Singleton();31 }32 }33 }34 return instance;35 }36 }
Java单例模式实现(线程安全)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。