博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单例设计模式-懒汉饿汉
阅读量:7223 次
发布时间:2019-06-29

本文共 1240 字,大约阅读时间需要 4 分钟。

懒汉模式:

#include
using namespace std;class Single_Lazy{public: static Single_Lazy *getInstance() { if (s == nullptr) { s = new Single_Lazy(); } return s; }private: Single_Lazy() {} static Single_Lazy *s;};Single_Lazy *Single_Lazy:: s = nullptr;void test1(){ Single_Lazy *s1 = Single_Lazy::getInstance(); Single_Lazy *s3 = Single_Lazy::getInstance(); Single_Lazy *s2 = Single_Lazy::getInstance(); if (s1 == s3) { cout << "指向同一个对象" << endl; } else { cout << "指向不是同一个对象" << endl; }}int main(){ test1(); system("pause");}

懒汉模式是线程不安全的需要加锁

饿汉模式:

#include
using namespace std;class Single_Hunger{public: static Single_Hunger *getInstance() { return s; }private: Single_Hunger() {} static Single_Hunger *s;};Single_Hunger *Single_Hunger::s = new Single_Hunger();void test1(){ Single_Hunger *s1 = Single_Hunger::getInstance(); Single_Hunger *s2 = Single_Hunger::getInstance(); if (s1 == s2) { cout << "指向同一个对象" << endl; } else { cout << "指向不是同一个对象" << endl; }}int main(){ test1(); system("pause");}

转载于:https://www.cnblogs.com/readlearn/p/10806527.html

你可能感兴趣的文章
Redis在Web项目中的应用与实践
查看>>
JavaScript HTML DOM
查看>>
吐槽Javascript系列二:数组中的splice和slice方法
查看>>
HashMap剖析之内部结构
查看>>
什么是Javascript函数节流?
查看>>
【技术性】Search知识
查看>>
区块链共识机制优缺点对比都是什么
查看>>
如何进阶一名有竞争力的程序员?
查看>>
seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
查看>>
前端_面试
查看>>
Promise面试题,控制异步流程
查看>>
MQ框架的比较
查看>>
Spark in action on Kubernetes - Playground搭建与架构浅析
查看>>
详解NodeJs流之一
查看>>
Fundebug计费标准解释:事件数是如何定义的?
查看>>
理解这几张图,你就是js小牛了
查看>>
【EOS】Cleos基础
查看>>
iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
查看>>
使用parted解决大于2T的磁盘分区
查看>>
oschina
查看>>