懒汉模式单例模式实现及性能分析

懒汉模式的单例模式,挺实用的。它的核心思想是:在需要使用实例的时候,才创建实例,避免了无用的内存浪费。一般来说,懒汉模式使用了synchronized关键字来保证线程安全,但每次调用都会加锁,所以性能上会有一些损失。如果你不太关心性能,或者能接受这个开销,这种模式还是蛮。不过,如果你要求性能更高,可以考虑饿汉模式,直接在类加载时就初始化,这样没有同步开销。比如:

private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
  if(instance == null) {
    instance = new Singleton();
  }
  return instance;
}
这种方式你可以随时调用,但要注意同步带来的性能瓶颈哦。,如果你对线程安全没太多要求,可以考虑饿汉模式,比较直接简洁。

如果你对设计模式有兴趣,相关的文章也蛮多的,像工厂模式、代理模式这些都可以和单例模式搭配使用,能够你写出更加灵活的代码。

ppt 文件大小:299.5KB