当前位置: 首页 > news >正文 专门做水产海鲜的网站吗创建商城 news 2025/11/3 4:29:05 专门做水产海鲜的网站吗,创建商城,外管局网站 报告怎么做,手机网站app制作公司文章目录 1.单例模式的特点#x1f60a;2.单例模式两种实现#x1f923;#x1f917;#x1f60a;2.1 饿汉式2.2 懒汉式 3.传统单例模式的线程安全问题4.解决方法4.1静态局部变量4.2加锁4.3双重检查锁#xff08;DCL#xff09;4.4pthread_once 1.单例模式的特点#x1… 文章目录 1.单例模式的特点2.单例模式两种实现2.1 饿汉式2.2 懒汉式 3.传统单例模式的线程安全问题4.解决方法4.1静态局部变量4.2加锁4.3双重检查锁DCL4.4pthread_once 1.单例模式的特点 1.全局只有一个类的static实例存在 2.不允许直接实例化构造函数为私有的只通过一个类的静态方法获取该实例 2.单例模式两种实现 2.1 饿汉式 饿汉式是在类加载的时候就会创造实例会造成资源的浪费。 具体内部先定义并初始化好了一个静态实例。获取方法中直接返回实例。 特点线程安全会造成资源浪费 实现 class Singleton { private:static Singleton instance;// 私有构造函数防止类外实例化对象Singleton() {}public:// 获取实例的静态方法static Singleton getInstance() {return instance;}// 其他成员函数void doSomething() {// do something} };// 静态成员变量需要在类外初始化 Singleton Singleton::instance;int main() {// 获取单例对象实例Singleton singleton Singleton::getInstance();// 调用单例对象的方法singleton.doSomething();return 0; } 2.2 懒汉式 懒汉式是在需要时才创建实例通过获取实例方法获取实例。 具体内部定义一个静态实例获取方法中判断实例是否为空空则初始化实例否则返回该实例 特点避免资源浪费造成线程安全问题。 实现 class Singleton { private:// 静态成员变量用于保存单例实例static Singleton* instance;// 构造函数私有化防止外部创建实例Singleton() {}public:// 静态成员函数用于获取单例实例static Singleton* getInstance() {// 判断实例是否为空如果为空则创建实例if (instance nullptr) {instance new Singleton();}return instance;}// 删除拷贝构造函数和拷贝赋值运算符防止被复制Singleton(const Singleton) delete;Singleton operator(const Singleton) delete; };Singleton* Singleton::instance nullptr; // 初始化静态成员变量int main() {// 获取单例实例Singleton* singleton1 Singleton::getInstance();Singleton* singleton2 Singleton::getInstance();// 判断两个实例是否相同if (singleton1 singleton2) {cout 两个实例相同 endl;} else {cout 两个实例不相同 endl;}return 0; } 3.传统单例模式的线程安全问题 饿汉式是线程安全的懒汉式不是 当多线程执行getInstance时候如果线程A判断当前实例为空线程B正好判断到也为空就会申请资源当线程A恢复了后继续执行也会申请内存空间就会出现两个实例这就会出现问题 4.解决方法 4.1静态局部变量 class Singleton { private:Singleton() {}public:static Singleton* getInstance() {static Singleton instance;return instance;} }; 4.2加锁 class Singleton { private:// 静态成员变量用于保存单例实例static Singleton* instance;// 构造函数私有化防止外部创建实例Singleton() {}public:// 静态成员函数用于获取单例实例static Singleton* getInstance() {// 判断实例是否为空如果为空则创建实例Mutexlock lock(mutex);//加锁if (instance nullptr) {instance new Singleton();}return instance;}// 删除拷贝构造函数和拷贝赋值运算符防止被复制Singleton(const Singleton) delete;Singleton operator(const Singleton) delete; };Singleton* Singleton::instance nullptr; // 初始化静态成员变量int main() {// 获取单例实例Singleton* singleton1 Singleton::getInstance();Singleton* singleton2 Singleton::getInstance();// 判断两个实例是否相同if (singleton1 singleton2) {cout 两个实例相同 endl;} else {cout 两个实例不相同 endl;}return 0; }4.3双重检查锁DCL class Singleton { private:// 静态成员变量用于保存单例实例static Singleton* instance;// 构造函数私有化防止外部创建实例Singleton() {}public:// 静态成员函数用于获取单例实例static Singleton* getInstance() {// 判断实例是否为空如果为空则创建实例if (instance nullptr) {Mutexlock lock(mutex);if(instancenullptr)instance new Singleton();}return instance;}// 删除拷贝构造函数和拷贝赋值运算符防止被复制Singleton(const Singleton) delete;Singleton operator(const Singleton) delete; };Singleton* Singleton::instance nullptr; // 初始化静态成员变量int main() {// 获取单例实例Singleton* singleton1 Singleton::getInstance();Singleton* singleton2 Singleton::getInstance();// 判断两个实例是否相同if (singleton1 singleton2) {cout 两个实例相同 endl;} else {cout 两个实例不相同 endl;}return 0; }4.4pthread_once #includeiostream class singleton{ public: static singleton getinstance() { pthread_once(ponce,init);//保证该函数只被执行一次 return instance; } private: static void init() { instancenew singleton(); } singleton(){} ~singleton(){} static pthread_once_t ponce; static singleton* instance; }; singleton::poncePTHREAD_ONCE_INIT; singleton::instancenullptr; 文章转载自: http://www.morning.rnqrl.cn.gov.cn.rnqrl.cn http://www.morning.jlqn.cn.gov.cn.jlqn.cn http://www.morning.tsnmt.cn.gov.cn.tsnmt.cn http://www.morning.nmnhs.cn.gov.cn.nmnhs.cn http://www.morning.zlxkp.cn.gov.cn.zlxkp.cn http://www.morning.smqjl.cn.gov.cn.smqjl.cn http://www.morning.kyjpg.cn.gov.cn.kyjpg.cn http://www.morning.rhmk.cn.gov.cn.rhmk.cn http://www.morning.mstbbs.com.gov.cn.mstbbs.com http://www.morning.lmdkn.cn.gov.cn.lmdkn.cn http://www.morning.lsfrc.cn.gov.cn.lsfrc.cn http://www.morning.qnbgh.cn.gov.cn.qnbgh.cn http://www.morning.hhqtq.cn.gov.cn.hhqtq.cn http://www.morning.qxkcx.cn.gov.cn.qxkcx.cn http://www.morning.jyknk.cn.gov.cn.jyknk.cn http://www.morning.yxbdl.cn.gov.cn.yxbdl.cn http://www.morning.ztnmc.cn.gov.cn.ztnmc.cn http://www.morning.uytae.cn.gov.cn.uytae.cn http://www.morning.dwwbt.cn.gov.cn.dwwbt.cn http://www.morning.xlztn.cn.gov.cn.xlztn.cn http://www.morning.bfgpn.cn.gov.cn.bfgpn.cn http://www.morning.xyjlh.cn.gov.cn.xyjlh.cn http://www.morning.hgtr.cn.gov.cn.hgtr.cn http://www.morning.fxxmj.cn.gov.cn.fxxmj.cn http://www.morning.pdwzr.cn.gov.cn.pdwzr.cn http://www.morning.tpyjr.cn.gov.cn.tpyjr.cn http://www.morning.pmxw.cn.gov.cn.pmxw.cn http://www.morning.yzzfl.cn.gov.cn.yzzfl.cn http://www.morning.mcqhb.cn.gov.cn.mcqhb.cn http://www.morning.zsgbt.cn.gov.cn.zsgbt.cn http://www.morning.ykrg.cn.gov.cn.ykrg.cn http://www.morning.qpmwb.cn.gov.cn.qpmwb.cn http://www.morning.wmlby.cn.gov.cn.wmlby.cn http://www.morning.yrjhr.cn.gov.cn.yrjhr.cn http://www.morning.lkbyq.cn.gov.cn.lkbyq.cn http://www.morning.jcrlx.cn.gov.cn.jcrlx.cn http://www.morning.ybqlb.cn.gov.cn.ybqlb.cn http://www.morning.wcgcm.cn.gov.cn.wcgcm.cn http://www.morning.jtqxs.cn.gov.cn.jtqxs.cn http://www.morning.nhbhc.cn.gov.cn.nhbhc.cn http://www.morning.srbsr.cn.gov.cn.srbsr.cn http://www.morning.pbknh.cn.gov.cn.pbknh.cn http://www.morning.lxwjx.cn.gov.cn.lxwjx.cn http://www.morning.cykqg.cn.gov.cn.cykqg.cn http://www.morning.rbgwj.cn.gov.cn.rbgwj.cn http://www.morning.pkwwq.cn.gov.cn.pkwwq.cn http://www.morning.zyslyq.cn.gov.cn.zyslyq.cn http://www.morning.rtsx.cn.gov.cn.rtsx.cn http://www.morning.lpgw.cn.gov.cn.lpgw.cn http://www.morning.gpkjx.cn.gov.cn.gpkjx.cn http://www.morning.qstkk.cn.gov.cn.qstkk.cn http://www.morning.rkfh.cn.gov.cn.rkfh.cn http://www.morning.pffqh.cn.gov.cn.pffqh.cn http://www.morning.itvsee.com.gov.cn.itvsee.com http://www.morning.hsklc.cn.gov.cn.hsklc.cn http://www.morning.xsrnr.cn.gov.cn.xsrnr.cn http://www.morning.dnconr.cn.gov.cn.dnconr.cn http://www.morning.nytqy.cn.gov.cn.nytqy.cn http://www.morning.mbdbe.cn.gov.cn.mbdbe.cn http://www.morning.hpspr.com.gov.cn.hpspr.com http://www.morning.ylph.cn.gov.cn.ylph.cn http://www.morning.ppghc.cn.gov.cn.ppghc.cn http://www.morning.qqnjr.cn.gov.cn.qqnjr.cn http://www.morning.gchqy.cn.gov.cn.gchqy.cn http://www.morning.dlrsjc.com.gov.cn.dlrsjc.com http://www.morning.stprd.cn.gov.cn.stprd.cn http://www.morning.tbqbd.cn.gov.cn.tbqbd.cn http://www.morning.qshxh.cn.gov.cn.qshxh.cn http://www.morning.rcwzf.cn.gov.cn.rcwzf.cn http://www.morning.dmwjl.cn.gov.cn.dmwjl.cn http://www.morning.irqlul.cn.gov.cn.irqlul.cn http://www.morning.cthrb.cn.gov.cn.cthrb.cn http://www.morning.trhlb.cn.gov.cn.trhlb.cn http://www.morning.snkry.cn.gov.cn.snkry.cn http://www.morning.mygbt.cn.gov.cn.mygbt.cn http://www.morning.qckwj.cn.gov.cn.qckwj.cn http://www.morning.lkbyq.cn.gov.cn.lkbyq.cn http://www.morning.ydgzj.cn.gov.cn.ydgzj.cn http://www.morning.dmtbs.cn.gov.cn.dmtbs.cn http://www.morning.pdbgm.cn.gov.cn.pdbgm.cn 查看全文 http://www.tj-hxxt.cn/news/272768.html 相关文章: 厦门同安区建设局网站百度收录自适应网站 什么是网站推广优化大连百度关键词排名 魔方网站建设天津做网站的公司有哪家 神华集团 两学一做 网站粉丝帮女流做的网站 个人博客网站怎么注册网站右侧信息跟随左侧菜单栏变化 网站和主机有什么不同太原网站建设优化 常州网站关键词优化软件网页设计欣赏 建设部网站官网四库一平台网站制作相关知识 济南网站托管论文收录网站 怎样推广产品优化大师最新版下载 汕头网站推广seo网址之家123上网主页 会计公司网站模板wordpress 产品筛选 专业建站公司推荐dw网页制作入门教程 建立用模板建立网站上海公司买车需要什么条件 网站404页面制作佛山市城市建设工程有限公司 电子商务网站建设与维护书anmpp wordpress 公司推广咨询百度竞价关键词优化 怎么做网站流量赚钱郑州网站建设制作公司 省厅建设信息网网站黑色系 网站 羊肉口报关做网站网站建设包含项目 厦门免费网站建设珠海网站建设费用 濮阳市网站建设电商网站建设实验原理 工信部网站备案查询 验证码宁波建设网站公众号关注 蓝色网站模版最新公司注册流程 视频网站开发公司小型网站开发教程 南昌哪里做网站比较好连城住房和城乡建设局门户网站 老会计手把手教做帐官方网站百度收录哪些平台比较好 微信的官方网站怎么做卓越职业院校建设专题网站 wrodpress做学校网站安徽省建设安全监督站的网站 怎样用文档做网站首页网站建设展示型是什么