懒汉模式单例模式实现及性能分析
懒汉模式的单例模式,挺实用的。它的核心思想是:在需要使用实例的时候,才创建实例,避免了无用的内存浪费。一般来说,懒汉模式使用了synchronized
关键字来保证线程安全,但每次调用都会加锁,所以性能上会有一些损失。如果你不太关心性能,或者能接受这个开销,这种模式还是蛮。不过,如果你要求性能更高,可以考虑饿汉模式,直接在类加载时就初始化,这样没有同步开销。比如:
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if(instance == null) {
instance = new Singleton();
}
return instance;
}
这种方式你可以随时调用,但要注意同步带来的性能瓶颈哦。,如果你对线程安全没太多要求,可以考虑饿汉模式,比较直接简洁。如果你对设计模式有兴趣,相关的文章也蛮多的,像工厂模式、代理模式这些都可以和单例模式搭配使用,能够你写出更加灵活的代码。
299.5KB
文件大小:
评论区