原先的单例模式在多线程环境下已经不再适应,那么该怎么办呢??
答:
(1)使用双重锁定实现线程安全的单例模式
(2)静态初始化单例模式
直接实例化Singleton对象,在GetInstance方法中直接返回_Instance对象
我们知道,静态成员只初始化一次,也就是说_Instance在第一次访问该类就实例化,所以Singleton类第一次被访问的时候,就完成了Singleton类的实例化,而且只被实例化一次,通过这种方式,也能保证多线程环境下的单例模式
勘正:请注意,图中Singleton的无参构造函数应该声明为private!!!!!!!!!!!!!!!!!!!!!!
原文:https://www.cnblogs.com/schangxiang/p/11297100.html