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

高端网站建设济南兴田德润简介电话/磁力屋torrentkitty

高端网站建设济南兴田德润简介电话,磁力屋torrentkitty,php 个人网站,企业网站建设客户需求调查问卷前言 设计模式(Design Pattern)是一套经过分类的,被反复使用的,代码设计经验的总结。 为什么会产生设计模式这个概念呢?随着时间的沉淀,以及前人的总结,我们发现代码设计也是有规律的&#xff…

前言

设计模式(Design Pattern)是一套经过分类的,被反复使用的,代码设计经验的总结。 为什么会产生设计模式这个概念呢?随着时间的沉淀,以及前人的总结,我们发现代码设计也是有规律的,一类特定的问题会被一种特定的模式解决,这就衍生出了设计模式的概念。

使用设计模式的目的:为了代码的可重用性以及可靠性。

设计模式是软件工程的基石脉络,如同大厦的结构一样,设计模式使代码编写真正工程化。

一:单例模式

单例模式即一个类在全局中(进程)只能创建一个实例。

单例模式有两种实现模式:懒汉模式和饿汉模式。

1.1 懒汉模式

懒汉模式:第一次使用实例对象时再创建实例对象。

代码演示:

#include<iostream>
#include<thread>
#include<vector>
#include<mutex>
using namespace std;class Singleton{
public:// 静态成员函数只能访问静态成员变量static Singleton* GetInstance(){if (_pinst == nullptr)// 局部域(通过作用域来控制解锁时机){// _mtx.lock();unique_lock<mutex> lock(_mtx); // (保护操作的原子性)if (_pinst == nullptr)// 锁只需要保护第一次(需要进行双检查)_pinst = new Singleton;// _mtx.unlock();}return _pinst;}Singleton(const Singleton& s) = delete;// 实现一个内嵌垃圾回收类class CGarbo {public:~CGarbo(){if (Singleton::_pinst)delete Singleton::_pinst;}};// 定义一个静态成员变量,程序结束时,系统会自动调用它的析构函数从而释放单例对象static CGarbo Garbo;private:// 构造函数私有化Singleton(){}// 防拷贝Singleton(Singleton const&);Singleton& operator=(Singleton const&);static Singleton* _pinst;static mutex _mtx;
};Singleton* Singleton::_pinst = nullptr;
mutex Singleton::_mtx;
Singleton::CGarbo Garbo;

1.2 饿汉模式

饿汉模式:程序启动时就创建一个唯一的实例对象。

如果这个单例对象在多线程高并发环境下频繁使用,性能要求较高,那么显然使用饿汉模式来避免资源竞争,提高响应速度更好。

代码演示:

#include<iostream>
#include<thread>
#include<vector>
#include<mutex>
using namespace std;// 饿汉模式
class Singleton
{
public:static Singleton* GetInstance(){return &m_instance;}private:// 构造函数私有Singleton(){};Singleton(Singleton const&) = delete;Singleton& operator=(Singleton const&) = delete;// 单例对象static Singleton m_instance;
};// 在程序入口之前就完成单例对象的初始化,不用考虑线程安全的问题。
Singleton Singleton::m_instance; 

1.3 懒汉模式和饿汉模式的对比

懒汉模式:

优点:懒汉模式在使用实例的时候才进行创建,不会影响程序的启动。并且多个单例实例启动顺序自由控制。

缺点:懒汉模式实现复杂。并且需要考虑线程安全问题

饿汉模式:

优点:饿汉模式实现简单,并且在程序启动时已经完成了对单例对象的初始化,不需要考虑线程安全问题。

缺点:饿汉模式在程序启动时完成了对单例对象的初始化,会在一定程度上影响程序启动。静态成员变量无法确定单例的创建初始化顺序,多个单例类对象实例启动顺序不确定。

小结:

实际中懒汉模式还是应用更为广泛

http://www.jmfq.cn/news/5008843.html

相关文章:

  • 不会编程如何做自己的网站/宁德seo
  • 想美团这样的网站怎么做的/近期国内新闻
  • 吉安网站制作公司排名/网络推广公司北京
  • 小企业网站建设多少钱/线上广告推广平台
  • 龙岗在线网站建设/网站友情链接的好处
  • 自己做发卡网站支付接口/站长seo工具
  • 武汉房地产网站开发/个人网页生成器
  • php 网站发布/买卖友情链接
  • 武安网站建设价格/品牌营销策划方案
  • 新手建立企业网站流程/百度平台联系方式
  • 做ppt用什么网站好/安徽百度seo公司
  • 做镜像网站/成都有实力的seo团队
  • 福永网站推广/谷歌seo优化技巧
  • 手机app网站/爱站长尾词挖掘工具
  • 我的世界外国做图网站/优化设计答案大全英语
  • 制作相册怎么做/seo搜索引擎优化原理
  • 网站建设丶金手指C排名15/免费推广app软件下载
  • 泰安做网站建设的公司/宽带营销策略
  • 一搜同志网站建设电话/外包公司是正规公司吗
  • 网站开发课程知识点总结/白城seo
  • 第寒网站建设/品牌营销策略分析
  • 个人网站在那建设/信息推广
  • 哪个旅游网站规划好/经典的软文广告
  • 物业公司网站设计/seo网站优化培训多少价格
  • 网站首页介绍/seo是网络优化吗
  • 做网站收录真的假的/百度做广告推广怎么样
  • 做物流网站/查询seo
  • 上海闸北城市建设有限公司网站/推广形式有哪几种
  • 90设计官方网站/引流推广的句子
  • 西安抖音运营/河南整站百度快照优化