设计模式之单例模式
文章目录
概述:单例模式是最简单的,也是用的比较多的,这里记录一下常见几种单例的写法的优缺点。
代码:
饿汉式
1 | //线程安全但耗资源 |
懒汉式
1 | class Singleton { |
在方法上加锁:每次调用方法都用锁,效率低下,我们可以考虑在对象为null时才锁
1
2
3
4
5
6
7
8
9
10public static Singleton getInstance() {
if (instance == null) {
//第二个线程进来了
synchronized (Singleton.class) {
//第一个线程走到这里
instance = new Singleton();
}
}
return instance;
}这样做线程又不安全了如上注释
用双重锁
1 | class Singleton { |
即实现懒加载又线程安全的方式
1 | class Singleton { |