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

长春绿园网站建设海阳玖网站建设

长春绿园网站建设,海阳玖网站建设,这样自己做网站,深圳最好的网站建设公司多线程之单例模式 什么是设计模式#xff0c;都有哪些设计模式单例模式饿汉模式懒汉模式 什么是设计模式#xff0c;都有哪些设计模式 设计模式就是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理… 多线程之单例模式 什么是设计模式都有哪些设计模式单例模式饿汉模式懒汉模式 什么是设计模式都有哪些设计模式 设计模式就是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 创建模式中 抽象工厂模式 ,提供一个创建一系列相关或相互依赖对象的接口而无需指定它们具体的类。 生成器模式将一个复杂对象的构建与它的表示分离使得同样的构建过程可以创建不同的表示。 工厂方法模式定义一个用于创建对象的接口让子类决定将哪一个类实例化。工厂方法使一个类的实例化延迟到其子类。 原型模式用原型实例指定创建对象的种类并且通过拷贝这个原型来创建新的对象。 单例模式保证一个类仅有一个实例并提供一个访问它的全局访问点。 结构模式中 适配器模式将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 桥接模式将抽象部分与它的实现部分分离使它们都可以独立地变化。 组合模式将对象组合成树形结构以表示“部分-整体”的层次结构。它使得客户对单个对象和复合对象的使用具有一致性。 容器模式 修饰模式动态地给一个对象添加一些额外的职责。就扩展功能而言 它比生成子类方式更为灵活。 扩展性模式 外观模式 享元模式 管道与过滤器模式 代理模式为其他对象提供一个代理以控制对这个对象的访问。 行为模式中 责任链模式为解除请求的发送者和接收者之间耦合而使多个对象都有机会处理这个请求。将这些对象连成一条链并沿着这条链传递该请求直到有一个对象处理它。 命令模式将一个请求封装为一个对象从而使你可用不同的请求对客户进行参数化对请求排队或记录请求日志以及支持可取消的操作。 单例模式 一个类只能创建一个对象即单例模式该模式可以保证系统中该类只有一个实例并提供一个 访问它的全局访问点该实例被所有程序模块共享而单例模式有两种实现模式懒汉模式和饿汉模式 饿汉模式 这个单例类对象在程序启动之初就直接创建由于定义了一个静态的类对象 class Singleton{public:static Singleton* GetInstance(){return m_instance;}private:// 构造函数私有Singleton(){};// C98 防拷贝Singleton(Singleton const); Singleton operator(Singleton const); // or// C11Singleton(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://www.sadfv.cn/news/403659/

相关文章:

  • wordpress删除全部评论seo工作怎么样
  • 网站开发都有哪些语言做外贸的网站有那些
  • 找私人做网站平板怎么做网页
  • 网站建设推广的方法wordpress网站登录
  • 网站安全建设模板 网站开发
  • 中国建设银行员工培训网站世界三大咨询公司
  • html判断域名 然后再跳转到网站试剂网站建设
  • 心理医院网站优化服务商wordpress newsletter 插件
  • 可以在自己的电脑上做网站吗西安建设工程信息网 人员信息
  • 网站新闻 写法福建城乡建设网站
  • cms网站后台上传图片提示图片类型错误但是类型是正确的重庆公司地址
  • 做村易通网站站长要收费吗中信建设官方网站软件下载
  • 怎样做科普视频网站民航资源网
  • 电子商务网站建设员网页制作与设计千年之恋代码
  • 郑州网站推广¥做下拉去118cr天津代理记账
  • 台州网站制作咨询薇lol网站模板
  • 商城app开发要多少钱宁波超值关键词优化
  • 金华企业制作网站东莞市行政区划图
  • 网站建设 微盘app定制软件开发哪家好
  • 建wap网站做相片网站
  • 网站建设案例基本流程永久免费网站建设方案
  • 百度网站权重查询能不能上传网站再备案
  • 网站建设起来还需要花钱吗wordpress 打开慢 google
  • 十大黄台软件app下载网站字头优化
  • 网站投稿系统怎么做华为云建网站
  • 高端网站建设必去磐石网络自己写的网页怎么发布到网上
  • 可信网站图片logo安装鸿蒙系统app开发
  • 新公司在哪做网站企业网站推广方案范文
  • 做cpa一定要有网站网站运营与管理的一个目的
  • 网站的建设心得wordpress下载教程