注册域名怎么建设网站,怎么做和美团一样的网站,wordpress文件上传位置,南通手机建站模板一、单例是什么
全局有且只有一个类的static实例。
二、c实现单例
2.1 一个好的单例应该具备下面4点
全局只有一个实例#xff1a;static特性#xff0c;同时禁止用户自己声明并定义实例#xff08;把构造函数设为private#xff09;线程安全禁止拷贝和赋值用户通过接口…一、单例是什么
全局有且只有一个类的static实例。
二、c实现单例
2.1 一个好的单例应该具备下面4点
全局只有一个实例static特性同时禁止用户自己声明并定义实例把构造函数设为private线程安全禁止拷贝和赋值用户通过接口获取实例使用static类成员函数
2.2最推荐的懒汉式单例-局部静态变量
如果当变量在初始化的时候并发同时进入声明语句并发线程将会阻塞等待初始化结束。并发线程在获取静态变量的时候一定是初始化过的具有线程安全性。 c静态变量的生存期是从声明到程序结束懒汉式。
#include iostream
using namespace std;class SingletonPattern_V3
{
public:~SingletonPattern_V3() {std::cout destructor called! std::endl;}//禁止赋值和拷贝SingletonPattern_V3(const SingletonPattern_V3) delete;SingletonPattern_V3 operator(const SingletonPattern_V3) delete;//用户通过接口获取实例使用static类成员函数static SingletonPattern_V3 Instance() {//局部静态变量特性保证线程安全全局只有一个实例static SingletonPattern_V3 m_pInstance;return m_pInstance;}
private://禁止用户自己声明并定义实例把构造函数设成privateSingletonPattern_V3() {std::cout constructor called! std::endl;}
};int main()
{SingletonPattern_V3 instance_1 SingletonPattern_V3::Instance();SingletonPattern_V3 instance_2 SingletonPattern_V3::Instance();system(pause);return 0;
}