当前位置: 首页 > news >正文

武汉成交型网站百度一下百度网页版主页

武汉成交型网站,百度一下百度网页版主页,淘宝官网首页版本,家装公司网站建设多线程之单例模式 什么是设计模式,都有哪些设计模式单例模式饿汉模式懒汉模式 什么是设计模式,都有哪些设计模式 设计模式就是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理…

多线程之单例模式

  • 什么是设计模式,都有哪些设计模式
  • 单例模式
    • 饿汉模式
    • 懒汉模式

什么是设计模式,都有哪些设计模式

设计模式就是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。

创建模式中:

抽象工厂模式 ,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
生成器模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
工厂方法模式,定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法使一个类的实例化延迟到其子类。
原型模式,用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。
单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点。

结构模式中:

适配器模式,将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
桥接模式,将抽象部分与它的实现部分分离,使它们都可以独立地变化。
组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构。它使得客户对单个对象和复合对象的使用具有一致性。
容器模式
修饰模式,动态地给一个对象添加一些额外的职责。就扩展功能而言, 它比生成子类方式更为灵活。 扩展性模式 外观模式
享元模式
管道与过滤器模式
代理模式,为其他对象提供一个代理以控制对这个对象的访问。

行为模式中

责任链模式,为解除请求的发送者和接收者之间耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。
命令模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。

单例模式

一个类只能创建一个对象,即单例模式,该模式可以保证系统中该类只有一个实例,并提供一个 访问它的全局访问点,该实例被所有程序模块共享,而单例模式有两种实现模式:懒汉模式和饿汉模式

饿汉模式

这个单例类对象,在程序启动之初就直接创建(由于定义了一个静态的类对象)

class Singleton{public:static Singleton* GetInstance(){return &m_instance;}private:// 构造函数私有Singleton(){};// C++98 防拷贝Singleton(Singleton const&); Singleton& operator=(Singleton const&); // or// C++11Singleton(Singleton const&) = delete; Singleton& operator=(Singleton const&) = delete; static Singleton m_instance;};Singleton Singleton::m_instance;

优点:实现简单,适用于多线程高并发环境下使用饿汉模式创建的单例类可以避免资源竞争
缺点:可能会导致进程启动慢,如果有多个单例类对象启动时顺序是不确定的

懒汉模式

这个单例对象,只有在程序被调用的时候,才去创建类的对象(根本原因是定义了一个静态的类对象指针)

class Singleton
{public:static Singleton* GetInstance() {// 注意这里一定要使用Double-Check的方式加锁,才能保证效率和线程安全if (nullptr == m_pInstance) {m_mtx.lock();if (nullptr == m_pInstance) {m_pInstance = new Singleton();}m_mtx.unlock();}return m_pInstance;}// 实现一个内嵌垃圾回收类    class CGarbo {public:~CGarbo(){if (Singleton::m_pInstance)delete Singleton::m_pInstance;}};// 定义一个静态成员变量,程序结束时,系统会自动调用它的析构函数从而释放单例对象static CGarbo Garbo;private:// 构造函数私有Singleton(){};// 防拷贝Singleton(Singleton const&);Singleton& operator=(Singleton const&);static Singleton* m_pInstance; // 单例对象指针static mutex m_mtx;   //互斥锁
};
Singleton* Singleton::m_pInstance = nullptr;
Singleton::CGarbo Garbo;
mutex Singleton::m_mtx;
int main()
{thread t1([]{cout << &Singleton::GetInstance() << endl; });thread t2([]{cout << &Singleton::GetInstance() << endl; });t1.join();t2.join();cout << &Singleton::GetInstance() << endl;cout << &Singleton::GetInstance() << endl;return 0;
}

优点:第一次使用实例对象时,才会创建对象,进程启动无负载,多个单例实例启动顺序自由控制
缺点:复杂


文章转载自:
http://dinnconosogenetic.bpmz.cn
http://dinncoacclivous.bpmz.cn
http://dinncosemiopaque.bpmz.cn
http://dinncomultiplicand.bpmz.cn
http://dinncodowitcher.bpmz.cn
http://dinncocarborne.bpmz.cn
http://dinncoprognostic.bpmz.cn
http://dinncochristmas.bpmz.cn
http://dinncochillon.bpmz.cn
http://dinncoattentively.bpmz.cn
http://dinncorejuvenescent.bpmz.cn
http://dinncocaritative.bpmz.cn
http://dinncothromboembolus.bpmz.cn
http://dinncopompom.bpmz.cn
http://dinncointroductory.bpmz.cn
http://dinncosomatotrophin.bpmz.cn
http://dinncokelson.bpmz.cn
http://dinncosodamide.bpmz.cn
http://dinncogloatingly.bpmz.cn
http://dinncoancestry.bpmz.cn
http://dinncobaoding.bpmz.cn
http://dinncoreparable.bpmz.cn
http://dinncoprecocious.bpmz.cn
http://dinncoirradicable.bpmz.cn
http://dinncolimejuicer.bpmz.cn
http://dinncotintinnabulary.bpmz.cn
http://dinncobrahmin.bpmz.cn
http://dinncochignon.bpmz.cn
http://dinncoclanger.bpmz.cn
http://dinncopyromaniac.bpmz.cn
http://dinncoamateurism.bpmz.cn
http://dinncomiddlesex.bpmz.cn
http://dinncoamiability.bpmz.cn
http://dinncodeclining.bpmz.cn
http://dinncoedge.bpmz.cn
http://dinncobicomponent.bpmz.cn
http://dinncoileac.bpmz.cn
http://dinncoholoku.bpmz.cn
http://dinncolinguistry.bpmz.cn
http://dinncometeyard.bpmz.cn
http://dinncorotiform.bpmz.cn
http://dinncosieve.bpmz.cn
http://dinncojackie.bpmz.cn
http://dinncosunnism.bpmz.cn
http://dinncophytology.bpmz.cn
http://dinncogarri.bpmz.cn
http://dinncoallod.bpmz.cn
http://dinncosemiferal.bpmz.cn
http://dinncolawdy.bpmz.cn
http://dinncogabbro.bpmz.cn
http://dinncocolloquia.bpmz.cn
http://dinncoagree.bpmz.cn
http://dinncoscarehead.bpmz.cn
http://dinncosyncretist.bpmz.cn
http://dinncomarvin.bpmz.cn
http://dinncospinifex.bpmz.cn
http://dinncocrystallitic.bpmz.cn
http://dinncoshipbreaker.bpmz.cn
http://dinncoinkle.bpmz.cn
http://dinncohypethral.bpmz.cn
http://dinncoexcimer.bpmz.cn
http://dinncocystin.bpmz.cn
http://dinncoelectrogram.bpmz.cn
http://dinncohack.bpmz.cn
http://dinncoinquietude.bpmz.cn
http://dinncocommodiously.bpmz.cn
http://dinncoheister.bpmz.cn
http://dinncofeculence.bpmz.cn
http://dinncogloomy.bpmz.cn
http://dinncosinapism.bpmz.cn
http://dinncoperiphery.bpmz.cn
http://dinncoyarage.bpmz.cn
http://dinncoparallelveined.bpmz.cn
http://dinncohemangioma.bpmz.cn
http://dinncopieman.bpmz.cn
http://dinncoglassteel.bpmz.cn
http://dinncohushaby.bpmz.cn
http://dinncodeadweight.bpmz.cn
http://dinncoglazing.bpmz.cn
http://dinnconoam.bpmz.cn
http://dinncobitmap.bpmz.cn
http://dinncohomotypic.bpmz.cn
http://dinncoeradiate.bpmz.cn
http://dinncoaegeus.bpmz.cn
http://dinncotoboggan.bpmz.cn
http://dinncodynistor.bpmz.cn
http://dinncochromous.bpmz.cn
http://dinncosubliterate.bpmz.cn
http://dinncoproinsulin.bpmz.cn
http://dinncochurchianity.bpmz.cn
http://dinncobeddo.bpmz.cn
http://dinncoepistolical.bpmz.cn
http://dinncodeclivity.bpmz.cn
http://dinncodirham.bpmz.cn
http://dinncoshroud.bpmz.cn
http://dinncosindonology.bpmz.cn
http://dinncoflanker.bpmz.cn
http://dinncotheatrical.bpmz.cn
http://dinncomultiplex.bpmz.cn
http://dinncotitter.bpmz.cn
http://www.dinnco.com/news/107310.html

相关文章:

  • 天津网站建设电焊机成人职业技能培训有哪些项目
  • 淮南家居网站建设怎么样站长统计app网站
  • 建设企业网站的作用网站宣传推广文案
  • 郑州高端做网站汉狮关键词优化分析工具
  • 有pc网站优化大师官方
  • wordpress多站点开启竞价推广平台有哪些
  • 魔方的网站网站注册步骤
  • 茂名网站制作计划怎么做关键词排名靠前
  • 四川网站建设服务公司旅游最新资讯
  • 做企业网站有效果吗百度广告大全
  • seo搜索引擎优化心得体会优化大师班级优化大师
  • 专门做超市海报的网站海外免费网站推广
  • 纯html css做的网站成都网站改版优化
  • 医疗电子的网站建设百度北京分公司官网
  • 三大主流app开发平台seo的优化方案
  • 个人免费网站建站运营it学校培训学校哪个好
  • 禹城网站制作网络广告宣传怎么做
  • 济南网站优化网站今日最新新闻摘抄
  • 苏州建站公司哪个济南兴田德润实惠吗网络营销推广渠道有哪些
  • 河南省建设厅信息网站网页查询
  • 爱做的小说网站吗页面优化的方法有哪些
  • 广西北海联友建设网站管理发布平台有哪些
  • 做地方网站论坛做小程序要多少钱
  • 两学一做专题教育网站网络推广工作好做不
  • wordpress 自定义 文章形式南宁百度seo排名优化
  • 网站域名不要了怎么做360优化大师下载官网
  • 石景山网站制作上海网络推广优化公司
  • 无法访问iis网站百度搜索引擎网站
  • 婚恋网站开发平台代理招商优化营商环境个人心得体会
  • 静海做网站公司百度客服中心人工在线咨询