单例模式: 保证一个类只有一个实例。
懒汉式单例:
public class LazySingleton {
private static LazySingleton instance = null;
private LazySingleton() {
}
public static LazySingleton getInstance() {
if (instance == null) {
instance = new LazySingleton();
}
return instance;
}
}
双重锁定:
public class MultiThreadSingleton {
private static MultiThreadSingleton instance = null;
private static Object lock = new Object(); // 锁旗标
private MultiThreadSingleton() {
}
public static MultiThreadSingleton getInstance() {
if (instance == null) {
synchronized (lock) {
if (instance == null) {
instance = new MultiThreadSingleton();
}
}
}
return instance;
}
}
// 不用让线程每次都加锁,而只是在实例未被创建的时候再加锁处理,同时保证多线程的安全,这种做法叫双重锁定.
饿汉式单例:
public class HungrySingleton {
private static HungrySingleton instance = new HungrySingleton();
private HungrySingleton() {
}
public static HungrySingleton getInstance() {
return instance;
}
}
饿汉式单例:静态初始化,即类一加载就实例化对象,所以要提前占用系统资源。
懒汉式单例:面临多线程访问的安全性问题,需要做双重锁定才能保证安全,但性能会受一定影响。
分享到:
相关推荐
Android之大话设计模式——:抽象工厂模式借鉴.pdf
NULL 博文链接:https://linxingliang.iteye.com/blog/1217811
Android之大话设计模式——:抽象工厂模式参考.pdf
单例模式 结构型模式 队列模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 行为模式(类行为模式) 解释器模式 模板方法模式 行为模式(对象行为模式) 策略模式 观察者模式 状态模式 导入模式 迭代器...
《大话设计模式》对各种设计模式,做简要归纳(原创)
Android之大话设计模式:抽象工厂模式终稿.pdf
android之大话设计模式.pdf
大话设计模式之外观模式 经典代码 C#类
树懒自己整理的大话设计模式的修行笔记,对程序设计有很大的帮助,主要是以自己学习的习惯整理的!
android之大话设计模式整理.pdf
大话设计模式源代码之简单工厂模式 经典代码
NULL 博文链接:https://helei050.iteye.com/blog/2086309
大话设计模式 完整设计模式介绍
大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf大话设计模式总结.pdf
大话设计模式之代理模式 经典代码 C#类
大话设计模式源代码之策略模式 经典代码 C#类
设计模式之《大话设计模式》.pptx
用 Objective-C 实现《大话设计模式》书中的例子,并用一些 Objective-C 的特性对例子的实现加以优化,希望能对初学设计模式的 iOS 开发者有所帮助。 前言 在某些人看来学习设计模式没有什么意义,因为在实际工作中...
代码可以运行,下载这个后,建议买->《大话设计模式这本书》。来辅助学习。有很多关于C#语言有关的设计模式分别由: 1、模板方法模式 2、外观模式 3、建造者模式 4、观察者模式 5、抽象工厂模式 6、状态模式 7、...