C++怎么实现Singleton模式
在C++中实现Singleton模式可以通过以下几种方式:
- 饿汉式单例模式:在程序启动时就创建单例对象,并且提供一个全局的访问点。
class Singleton {
private:
static Singleton* instance;
Singleton() {}
public:
static Singleton* getInstance() {
return instance;
}
};
Singleton* Singleton::instance = new Singleton();
- 懒汉式单例模式:在第一次访问时才创建单例对象。
class Singleton {
private:
static Singleton* instance;
Singleton() {}
public:
static Singleton* getInstance() {
if (instance == nullptr) {
instance = new Singleton();
}
return instance;
}
};
Singleton* Singleton::instance = nullptr;
- 双重检查锁定单例模式:在第一次访问时才创建单例对象,并且使用双重检查锁定机制确保线程安全。
#include <mutex>
class Singleton {
private:
static Singleton* instance;
static std::mutex mtx;
Singleton() {}
public:
static Singleton* getInstance() {
if (instance == nullptr) {
std::lock_guard<std::mutex> lock(mtx);
if (instance == nullptr) {
instance = new Singleton();
}
}
return instance;
}
};
Singleton* Singleton::instance = nullptr;
std::mutex Singleton::mtx;
这些是常见的实现Singleton模式的方式,选择其中一种方式根据具体需求和线程安全性要求进行选择。
版权声明
本文仅代表作者观点,不代表米安网络立场。
上一篇:自己如何建立虚拟主机 下一篇:俄罗斯VPS租用适合搭建哪些网站
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。