#include
#include
using namespace std;
/*单例模式:
* 1.恶汉式单例模式:还没有获取实例对象,实例对象就已经产生了.
* 2.懒汉式单例模式:唯一的实力对象,直到第一次获取他的时候,才产生.
*/
//一.懒汉式单例模式,优点是节省内存,缺点是线程不安全
class SingleExample
{
public:
static SingleExample* getinstance()//#3获取类的唯一实例对象的接口方法.
{
if (instance == nullptr)//如果实例为空,就创建第一个实例,否则返回原来的实例.
{
mutex1.lock();//星星星星星星星星星星星星星星星星
if (instance == nullptr)//加锁双重判断.保证一个实例对象,//星星星星星星星星星星星星星星星星
{
instance = new SingleExample();
//return instance;
}
mutex1.unlock();//星星星星星星星星星星星星星星星星
}
return instance;
}
private:
SingleExample() {}//#1构造函数私有化.
static mutex mutex1;//星星星星星星星星星星星星星星星星
static SingleExample* instance;//#2定义一个唯一的类的实例对象的指针.
SingleExample(const SingleExample&) = delete;//禁用拷贝构造
SingleExample& operator=(const SingleExample&) = delete;//禁用赋值重载
};
SingleExample* SingleExample::instance=nullptr;//静态成员变量.
mut服务器托管网ex SingleExample::mutex1;//星星星星星星星星星星星星星星星星
int main()
{
SingleExample* p1 = SingleExample::getinstance();
SingleExample* p2 = SingleExample::getinstance();
SingleExample* p3 = SingleExample::getinstance();
cout
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用服务器托管网,IDC机房托管, http://www.fwqtg.net
相关推荐: ChatGPT与软件架构(3) – 软件架构提示工程
高效利用ChatGPT辅助研发的关键是在研发生命周期的不同阶段采用对应提示获取有益的帮助。原文: Leveraging Prompt Engineering in Software Architecture with ChatGPT 软件架构开发生命周期转型。…