单例模式在C++中的实现方式
单例模式在C++中的实现方式有以下几种:
(图片来源网络,侵删)
- 懒汉式(线程不安全)
- 饿汉式(线程安全)
- 双检锁/双重校验锁(DCL,线程安全)
- 静态局部变量(线程安全)
- C++11版本(线程安全)
下面分别给出这五种实现方式的代码示例和解释。
懒汉式(线程不安全)
class Singleton { public: static Singleton* getInstance() { if (instance == nullptr) { instance = new Singleton(); } return instance; } private: Singleton() {} static Singleton* instance; }; Singleton* Singleton::instance = nullptr;
解释:这种方式是在第一次调用getInstance()方法时才创建实例,但是这种方式在多线程环境下是不安全的,可能会出现多个实例。
饿汉式(线程安全)
class Singleton { public: static Singleton* getInstance() { return instance
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。