单例模式
来源:互联网 发布:淘宝男装卫衣好店 编辑:程序博客网 时间:2024/05/29 19:40
单例模式
主要有三种:懒汉式单例、饿汉式单例。
单例模式有以下特点:有且只有一个实例,2个私有1个公有
懒汉单例模式
//在第一次调用的时候实例化自己 public static synchronized ConfigManager getInstance(){ if (configManager==null) { configManager=new ConfigManager(); } return configManager; }缺点:线程不安全,同时有两个类调用时,有可能出现混乱,第一个类没有完成调用时,另外一个类可能进入了该类的方法解决方法:使用双重锁定//得到对象public static synchronized ConfigManager getInstance(){ synchronized (ConfigManager.class) { if (configManager==null) { configManager=new ConfigManager(); } } return configManager; }饿汉单例模式//得到对象public static ConfigManager getInstance(){ if (configManager==null) { configManager=new ConfigManager(); } return configManager; }饿汉式在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变,所以天生是线程安全的。
阅读全文