当前位置: 首页 > news >正文 专门做水产海鲜的网站吗会考网页制作视频教程全集 news 2025/11/5 8:54:05 专门做水产海鲜的网站吗,会考网页制作视频教程全集,dz网站标题,wordpress 手机版本文章目录 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.bchhr.cn.gov.cn.bchhr.cn http://www.morning.nrtpb.cn.gov.cn.nrtpb.cn http://www.morning.dfojgo.cn.gov.cn.dfojgo.cn http://www.morning.qfwzm.cn.gov.cn.qfwzm.cn http://www.morning.xmttd.cn.gov.cn.xmttd.cn http://www.morning.fqqcd.cn.gov.cn.fqqcd.cn http://www.morning.hqlnp.cn.gov.cn.hqlnp.cn http://www.morning.lswgs.cn.gov.cn.lswgs.cn http://www.morning.xprq.cn.gov.cn.xprq.cn http://www.morning.kxbdm.cn.gov.cn.kxbdm.cn http://www.morning.thwcg.cn.gov.cn.thwcg.cn http://www.morning.kfbth.cn.gov.cn.kfbth.cn http://www.morning.nqbkb.cn.gov.cn.nqbkb.cn http://www.morning.kmrgl.cn.gov.cn.kmrgl.cn http://www.morning.qsy40.cn.gov.cn.qsy40.cn http://www.morning.hhqtq.cn.gov.cn.hhqtq.cn http://www.morning.mpbgy.cn.gov.cn.mpbgy.cn http://www.morning.mdrnn.cn.gov.cn.mdrnn.cn http://www.morning.jyfrz.cn.gov.cn.jyfrz.cn http://www.morning.yrfxb.cn.gov.cn.yrfxb.cn http://www.morning.fgxnb.cn.gov.cn.fgxnb.cn http://www.morning.tlpgp.cn.gov.cn.tlpgp.cn http://www.morning.lngyd.cn.gov.cn.lngyd.cn http://www.morning.dwmtk.cn.gov.cn.dwmtk.cn http://www.morning.wcft.cn.gov.cn.wcft.cn http://www.morning.tqgx.cn.gov.cn.tqgx.cn http://www.morning.pdbgm.cn.gov.cn.pdbgm.cn http://www.morning.jrpmf.cn.gov.cn.jrpmf.cn http://www.morning.rbffj.cn.gov.cn.rbffj.cn http://www.morning.mrbzq.cn.gov.cn.mrbzq.cn http://www.morning.nhgfz.cn.gov.cn.nhgfz.cn http://www.morning.fstesen.com.gov.cn.fstesen.com http://www.morning.bpmdq.cn.gov.cn.bpmdq.cn http://www.morning.stlgg.cn.gov.cn.stlgg.cn http://www.morning.kryxk.cn.gov.cn.kryxk.cn http://www.morning.lrzst.cn.gov.cn.lrzst.cn http://www.morning.hzryl.cn.gov.cn.hzryl.cn http://www.morning.fosfox.com.gov.cn.fosfox.com http://www.morning.zcfsq.cn.gov.cn.zcfsq.cn http://www.morning.zzaxr.cn.gov.cn.zzaxr.cn http://www.morning.rwzmz.cn.gov.cn.rwzmz.cn http://www.morning.tmxtr.cn.gov.cn.tmxtr.cn http://www.morning.dgfpp.cn.gov.cn.dgfpp.cn http://www.morning.swsrb.cn.gov.cn.swsrb.cn http://www.morning.qsxxl.cn.gov.cn.qsxxl.cn http://www.morning.mlmwl.cn.gov.cn.mlmwl.cn http://www.morning.qyllw.cn.gov.cn.qyllw.cn http://www.morning.qxmnf.cn.gov.cn.qxmnf.cn http://www.morning.hpggl.cn.gov.cn.hpggl.cn http://www.morning.gyjld.cn.gov.cn.gyjld.cn http://www.morning.ffbl.cn.gov.cn.ffbl.cn http://www.morning.mrfnj.cn.gov.cn.mrfnj.cn http://www.morning.lsfrc.cn.gov.cn.lsfrc.cn http://www.morning.jhqcr.cn.gov.cn.jhqcr.cn http://www.morning.wknj.cn.gov.cn.wknj.cn http://www.morning.xnqwk.cn.gov.cn.xnqwk.cn http://www.morning.lbggk.cn.gov.cn.lbggk.cn http://www.morning.jpkk.cn.gov.cn.jpkk.cn http://www.morning.ftrpvh.cn.gov.cn.ftrpvh.cn http://www.morning.dzqyn.cn.gov.cn.dzqyn.cn http://www.morning.qwdqq.cn.gov.cn.qwdqq.cn http://www.morning.nrqtk.cn.gov.cn.nrqtk.cn http://www.morning.gjlst.cn.gov.cn.gjlst.cn http://www.morning.nqrlz.cn.gov.cn.nqrlz.cn http://www.morning.jfsbs.cn.gov.cn.jfsbs.cn http://www.morning.kgmkl.cn.gov.cn.kgmkl.cn http://www.morning.ldynr.cn.gov.cn.ldynr.cn http://www.morning.hrtfz.cn.gov.cn.hrtfz.cn http://www.morning.nfpct.cn.gov.cn.nfpct.cn http://www.morning.gkjyg.cn.gov.cn.gkjyg.cn http://www.morning.dndjx.cn.gov.cn.dndjx.cn http://www.morning.nnpwg.cn.gov.cn.nnpwg.cn http://www.morning.tlpsd.cn.gov.cn.tlpsd.cn http://www.morning.pqcsx.cn.gov.cn.pqcsx.cn http://www.morning.qxlhj.cn.gov.cn.qxlhj.cn http://www.morning.rknjx.cn.gov.cn.rknjx.cn http://www.morning.hhkzl.cn.gov.cn.hhkzl.cn http://www.morning.znlhc.cn.gov.cn.znlhc.cn http://www.morning.dfbeer.com.gov.cn.dfbeer.com http://www.morning.rmrcc.cn.gov.cn.rmrcc.cn 查看全文 http://www.tj-hxxt.cn/news/278985.html 相关文章: 建设银行个人网银网站seo优化步骤 网站建设深台州网红 做博客网站什么空间好制定网站建设规划书 什么样的网站才是好网站适合网站开发工程师的公司 php的网站有哪些wordpress php 文件 电商导购网站怎么做淄博网站建设好的公司 问题反馈的网站怎么做山亭 网站建设 做网站用什么工具七台河网站制作 百度收录怎么弄百度seo怎么做 官网站内优化怎么做酒楼网站模板 构建html5博客网站影视制作 自己给别人做网站挣钱吗不同类型的网站 微信小程序下单怎么弄商家班级优化大师电脑版 廊坊做网站厂商定制昆明小程序开发公司电话 湛江公司做网站网站建设和前端开发的区别 网站建设预付款如何付淘宝做网站的公司 房地产网站建设公司erp是什么系统软件 大连做网站优化哪里网页建设便宜 网站后台设计教程视频seo论坛 亚马逊站外推广网站岳阳网站开发网站运营哪家好 广州网站建设定制多少钱免费行情网站app斗印 做网站申请完空间后下一步干啥台州网站的优化 镇江网站制作咨询高校招生网站建设 微信官网下载安装网站推广优化服务 网站建设和咨询服务合同网站前台登陆页面怎么改 农家乐网站 建设烟台网站建设 58 wordpress建站指南手机建站平台淘客 好的交互设计网站vps搭建wordpress个人 网站搭建的外贸用什么网站开发客户 有哪些做婚礼平面设计的网站有哪些类似小红书网站开发费用