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

杭州网站建设方案seo论坛站长交流

杭州网站建设方案,seo论坛站长交流,wordpress主题xstore,郑州的网站建设公司哪家好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/420640.html

    相关文章:

  1. 网站素材站怎么做百度关键词排名
  2. 网站视频点播怎么做网站优化入门免费教程
  3. 前端开发工程师需要具备哪些能力seo排名查询软件
  4. 网站怎么做百度能搜到病毒营销案例
  5. 做歌手的网站郑州网站优化培训
  6. 加强网站基础建设sem推广案例
  7. 佛山附近做网站的公司有哪些广告公司的业务范围
  8. 新民电商网站建设程序免费公司网址怎么注册
  9. 什么是网站结构优化西安网站制作建设
  10. 做电商自建网站怎样推广软文营销案例
  11. 抄底券网站怎么做的专门发广告的app
  12. 企业网站设计费用百度怎么推广自己的店铺
  13. 加快网站访问速度知名网络软文推广平台
  14. 地方网站盈利北京高端网站建设
  15. 网站二维码代码app软件推广平台
  16. 商融建设集团有限公司网站惠州大亚湾经济技术开发区
  17. 制作学校网站的教程谷歌seo排名优化服务
  18. 建设主管部门指定网站建网站用什么工具
  19. 怎样做招嫖网站网站秒收录工具
  20. 网络建站优化科技淘宝营销推广方案
  21. 公司广告百度推广seo学校培训课程
  22. 简易的在线数据库网站模板长沙公司网络营销推广
  23. 云南省昆明市做网站的公司百度一下就知道手机版
  24. 网站域名注册商海外短视频跨境电商平台是真的吗
  25. 淘宝网站是怎么做的吗网站推广优化方案
  26. 德州哪里有做网站推广的开鲁网站seo
  27. 网站建设技术支持 会天下百度移动排名优化软件
  28. 官网服务器西安优化网站公司
  29. 高端企业网站建设制作十大seo公司
  30. 兴义网站制作全球最大的磁力搜索引擎