设计模式-单例模式

懒汉式

懒汉式不是线程安全的模式,在多线程下可能会创建多个对象,为了避免此类情况,下面会有一个懒汉式线程安全模式(互斥量)

以下是懒汉式的部分代码
设计模式-单例模式

饿汉式

饿汉式是线程安全的,因为在初始化的时候就创建了对象,因此不会在此之后出现多个对象

以下是饿汉式的部分代码
设计模式-单例模式

懒汉线程安全(存在一定的隐患)

加锁,让懒汉式从非线程安全变成线程安全模式(了解一下就行,之后会将其修改成安全型)
设计模式-单例模式

静态局部变量

因为静态局部变量仅存在一份,所以这种方法很好

设计模式-单例模式
以上是四种单例模式的部分代码,在一定的时候我们会用到单例模式,因此我们需要考虑到线程安全因素,所以这里面的后三种模式都是线程安全的

测试:

设计模式-单例模式

结果:

设计模式-单例模式