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

定制网站开发方案今日竞彩足球最新比赛结果查询

定制网站开发方案,今日竞彩足球最新比赛结果查询,做网站怎么跟客户谈话,做网站需要什么配置1-单例模式定义 单例模式是一种创建型设计模式,它确保一个类在程序运行期间只有一个实例存在,并提供一个全局访问点。这个模式在需要全局控制资源(如配置管理、日志系统、线程池等)时非常有用。 1.1 单例模式的特殊点 1.私有构造…

1-单例模式定义

单例模式是一种创建型设计模式,它确保一个类在程序运行期间只有一个实例存在,并提供一个全局访问点。这个模式在需要全局控制资源(如配置管理、日志系统、线程池等)时非常有用。

 

1.1 单例模式的特殊点

1.私有构造函数:防止外部通过new关键字创建实例。

2.静态实例:通过静态成员变量或静态方法提供全局访问点。

3.防止拷贝构造和赋值操作:防止通过拷贝或赋值创建多个实例。

4.线程安全:在多线程环境下,确保单例的唯一性。

     2-实现

    我们这里实现有两种方式:1  懒汉式;2  饿汉式。

    2.1- 懒汉式单例(Lazy )

    优缺点分析:

    优点
    • 延迟初始化:实例在需要时才被创建,可以节省资源。
    缺点
    • 线程不安全:在多线程环境下,多个线程可能同时调用getInstance(),导致创建多个实例。
    • 性能问题:每次调用getInstance()都需要进行线程同步,影响性能

    代码实现:

    
    class Singleton {
    public:// 提供一个全局访问点static Singleton* getInstance() {// 双重检查锁定,提高性能,并且在加锁前先检查实例是否已经创建,避免不必要的锁开销。if (instance == nullptr) {lock_guard<mutex> lock(mtx);if (instance == nullptr) {instance = new Singleton();}}return instance;}// 防止拷贝构造和赋值操作Singleton(const Singleton&) = delete;Singleton& operator=(const Singleton&) = delete;private:// 构造函数设为私有,防止外部创建实例Singleton() {cout << "Singleton instance created." << endl;}// 静态实例指针static Singleton* instance;// 互斥锁确保在多线程环境下只有一个线程能够创建实例。static smutex mtx;
    };// 初始化静态成员
    Singleton* Singleton::instance = nullptr;
    mutex Singleton::mtx;// 使用示例
    int main() {Singleton* s1 = Singleton::getInstance();Singleton* s2 = Singleton::getInstance();// 检查两个指针是否指向同一个实例if (s1 == s2) {cout << "s1 and s2 are the same instance." << endl;}else {cout << "s1 and s2 are different instances." << sendl;}return 0;
    }

    2. 饿汉式单例(Eager )

     

    优缺点分析

    优点
    • 线程安全:实例在程序启动时就被创建,避免了多线程环境下的竞争条件。
    • 简单易用:实现简单,不需要额外的同步机制。
    缺点
    • 资源浪费:如果实例在程序运行期间从未被使用,会浪费内存资源。
    • 启动时间增加:在实例创建过程中,如果初始化过程复杂,会增加程序的启动时间。

    代码实现: 

    class Singleton {
    public:// 提供一个全局访问点static Singleton& getInstance() {return instance;}// 防止拷贝构造和赋值操作Singleton(const Singleton&) = delete;Singleton& operator=(const Singleton&) = delete;private:// 构造函数设为私有,防止外部创建实例Singleton() {cout << "Singleton instance created." << endl;}// 静态实例在程序启动时就会被创建,静态存储区保证线程安全static Singleton instance;
    };// 初始化静态成员
    Singleton Singleton::instance;// 使用示例
    int main() {Singleton& s1 = Singleton::getInstance();Singleton& s2 = Singleton::getInstance();// 检查两个引用是否指向同一个实例if (&s1 == &s2) {cout << "s1 and s2 are the same instance." << endl;}else {cout << "s1 and s2 are different instances." << endl;}return 0;
    }

    如果有错误还请评论区纠正 

     

     

     

    http://www.dtcms.com/wzjs/116617.html

    相关文章:

  1. 24视频网站建设泉州百度广告
  2. 黄石网站制作公司武汉seo 网络推广
  3. 惠阳区规划建设局网站百度竞价推广效果好吗
  4. 哪个云服务器便宜又好关键词整站优化公司
  5. 专业b2c网站建设产品如何在网上推广
  6. 济南做网站的公司哪家好营销网站建设规划
  7. 北京的电商平台网站互联网营销公司
  8. 宜昌网站优化石家庄最新新闻事件
  9. 河北百度推广seo搜索引擎优化叫什么
  10. PHP开源网站开发系统青岛网站排名推广
  11. 手机网站cms系统站长seo推广
  12. 做网站挣钱收录提交入口
  13. 宁德做网站公司广州十大营销策划公司
  14. 做网站如何使用网页插件seo常用的优化工具
  15. 网页设计与制作一课一文百度seo竞价推广是什么
  16. 网页设计代码大全div郑州网站优化软件
  17. 如何本地搭建网站nba交易最新消息
  18. 如何网站做专题seo推广是什么意思
  19. 建设银行属于哪里推推蛙贴吧优化
  20. 西安网站建设培训学校怎么做网络广告推广
  21. 厦门企业自助建站系统优化网站的意思
  22. 短视频关键词优化深圳网站建设优化
  23. 成都网站设计新闻关键词搜索排名工具
  24. 太平洋电脑配置报价官网东莞百度seo
  25. 北京网站开发费用大型网站建设公司
  26. 蓬莱市住房和规划建设管理局网站宁德市高中阶段招生信息平台
  27. 我的世界怎么做充值点卷网站数据推广公司
  28. 政府网站怎样建设google搜索引擎官网
  29. 黄山网站建设哪家强东莞网络推广系统
  30. 如何使用好单库选品库做网站网站之家查询