原先的单例模式在多线程环境下已经不再适应,那么该怎么办呢??

答:

(1)使用双重锁定实现线程安全的单例模式

 

 

(2)静态初始化单例模式

 

 

直接实例化singleton对象,在getinstance方法中直接返回_instance对象

 

我们知道,静态成员只初始化一次,也就是说_instance在第一次访问该类就实例化,所以singleton类第一次被访问的时候,就完成了singleton类的实例化,而且只被实例化一次,通过这种方式,也能保证多线程环境下的单例模式

 

 

勘正:请注意,图中singleton的无参构造函数应该声明为private!!!!!!!!!!!!!!!!!!!!!!