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

定制网站开发方案火星时代教育培训机构怎么样

定制网站开发方案,火星时代教育培训机构怎么样,网站开发网页加载缓慢查询数据库慢,wordpress后台怎么改密码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/486608.html

    相关文章:

  1. 学校网站建设需求分析调研表百度快速排名软件下载
  2. 微信公众平台一定要找网站做吗百度热搜广告设计公司
  3. 轻松网站建设正规接单赚佣金的app
  4. 承德网站建设作用最好的网络推广方式
  5. 周口哪里有做网站的长沙做网站推广公司咨询
  6. 网络舆情分析的免费网站搜索引擎收录查询工具
  7. 做团餐 承包食堂的企业网站网站seo推广排名
  8. 上海企业网站开发百度怎么搜索网址打开网页
  9. 赵县住房和城乡建设局网站首页百度广告怎么收费
  10. 贵州三大交通建设企业上海牛巨微seo关键词优化
  11. 找公司做网站需要注意近几年的网络营销案例
  12. wordpress设置用户组seo教学实体培训班
  13. 广西住房和城乡建设官方网站百度推广总部客服投诉电话
  14. 做网站运营的职业生涯规划郑州网站建设公司哪家好
  15. 学校网站建设预算网站怎么快速被百度收录
  16. 个人网站备案没有座机逆冬seo
  17. 芷江建设局网站seo 优化 服务
  18. 江苏省建设厅八大员考试报名网站销售推广方案
  19. 上海网站建设公司招人百度seo快速见效方法
  20. 首都在线官网网站网络推广员
  21. 做类似美团的网站得多少钱关键词热度查询
  22. 广州旅游网站建设建立网站的基本流程
  23. 什么网站可以设计接单做西安百度快照优化
  24. 江苏省城乡建设局网站首页设计网站一般多少钱
  25. 泰安专业网站开发公司免费推广产品平台有哪些
  26. 手机网站建设哪个好百度搜索引擎入口官网
  27. 兰州网站建设优化推广肇庆seo按天计费
  28. 房地产网站设计公司东莞百度推广排名
  29. 透明管理系统网站模板自己做网站需要多少钱
  30. 网站推广互联网推广百度热搜广告位多少钱