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

网站是怎么建设的游戏网址

网站是怎么建设的,游戏网址,做网站配置好了找不到服务器,织梦网站管理后台系统上面的织梦链接怎么样去掉单例模式 单例模式(Singleton Pattern#xff0c;也称为单件模式)#xff0c;使用最广泛的设计模式之一。其意图是保证一个类仅有一个实例#xff0c;并提供一个访问它的全局访问点#xff0c;该实例被所有程序模块共享。 定义单例类 ● 私有化它的构造函数#xff0c;…单例模式 单例模式(Singleton Pattern也称为单件模式)使用最广泛的设计模式之一。其意图是保证一个类仅有一个实例并提供一个访问它的全局访问点该实例被所有程序模块共享。 定义单例类 ● 私有化它的构造函数以防止外界创建单例类的对象 ● 使用类的私有静态指针变量指向类的唯一实例 ● 使用一个公有的静态方法获取该实例。 懒汉版 单例实例在第一次被使用时才进行初始化这叫做延迟初始化。 class Singleton { private:static Singleton* instance; private:Singleton() {};Singleton(const Singleton); public:static Singleton* getInstance(){if (instance  NULL)instance  new Singleton();return instance;} }; Singleton* Singleton::instance  NULL; 饿汉模式 class Singleton { public:static Singleton * getInstance() {return instance_;} private:Singleton();Singleton(const Singleton);static Singleton* instance_; }; Singleton* Singleton::instance_  new Singleton(); 懒汉式单例模式是一种延迟加载的单例模式在需要时才创建实例。在多线程环境下需要保证线程安全避免多个线程同时创建实例。以下是一个线程安全的懒汉式单例模式的C实现 #include mutexclass Singleton { private:static Singleton* instance;static std::mutex mtx;// 私有构造函数防止外部创建实例Singleton() {}public:// 获取单例实例的静态方法static Singleton* getInstance() {// 使用双重检查锁定Double-Checked Locking保证线程安全且避免不必要的锁开销if (instance nullptr) {std::lock_guardstd::mutex lock(mtx); // 加锁保护if (instance nullptr) {instance new Singleton();}}return instance;}// 禁止拷贝构造函数和赋值操作符Singleton(const Singleton) delete;Singleton operator(const Singleton) delete; };// 在类外初始化静态成员变量 Singleton* Singleton::instance nullptr; std::mutex Singleton::mtx;在上述代码中我们使用了std::mutex来保护实例的创建过程确保在多线程环境下只有一个线程能够创建实例。std::lock_guard用于自动管理锁的加锁和解锁确保在函数返回时会自动解锁。 需要注意的是由于需要保证单例对象唯一性我们还禁止了拷贝构造函数和赋值操作符以防止通过拷贝或赋值操作创建多个实例。 这样实现的懒汉式单例模式是线程安全的但在某些情况下双重检查锁定可能会导致一些性能问题。在现代C中还可以使用C11引入的局部静态变量来实现线程安全的懒汉式单例模式可以进一步简化代码并避免潜在的性能问题。 当使用C局部静态变量实现懒汉式单例模式时我们在getInstance()方法中使用了局部静态变量。局部静态变量是在第一次执行该代码行时初始化并且在程序的整个生命周期内保持其值直到程序结束。这样的特性使得局部静态变量非常适合实现懒汉式单例模式因为它们能够确保只有在第一次调用getInstance()方法时才会创建实例以后的调用都会返回同一个实例。 以下是使用局部静态变量实现懒汉式单例模式的代码 class Singleton { private:// 私有构造函数防止外部创建实例Singleton() {}public:// 获取单例实例的静态方法static Singleton* getInstance() {static Singleton instance; // 局部静态变量在第一次调用时初始化且只初始化一次return instance;}// 禁止拷贝构造函数和赋值操作符Singleton(const Singleton) delete;Singleton operator(const Singleton) delete; };为什么这样写 这种实现方式是线程安全的原因如下 C11规定局部静态变量在多线程环境下的初始化是线程安全的。编译器会保证在多线程环境下局部静态变量的初始化只会发生一次避免了多线程并发调用时重复创建实例的问题。 在调用getInstance()方法时局部静态变量instance会被初始化并在整个程序生命周期内保持其值。这保证了只有在第一次调用getInstance()方法时才会创建实例并返回以后的调用都将返回同一个实例。 需要注意的是使用局部静态变量实现懒汉式单例模式不会涉及锁的使用因此在性能上通常比双重检查锁定方式更高效。这是一种简洁且安全的单例模式实现方式。
http://www.hkea.cn/news/14402297/

相关文章:

  • 手机备案网站高佣金app软件推广平台
  • 苏州新区高端网站制作网页设计培训班网页设计学校
  • 企业网站 论文购物网站seo搜索引擎前期分析
  • 网站怎么做淘宝客自己做的网站二维码怎么做的
  • 三合一网站平台做药物分析常用网站
  • 网站设计亮点最新军事新闻视频在线观看
  • 裕华区建设局网站文件传输协议登录网站
  • 关于信用体系建设的网站龙岩seo公司
  • wordpress会员网站北京新闻媒体
  • 重庆网站建设大概多少费用企业软件管家
  • 扫描二维码进入公司网站怎样做石基网站建设
  • php做网站的技术难点滑县住房城乡建设厅门户网站
  • 网站接电话wordpress企业主题破解版
  • 查询海外whois的网站360免费wifi老是掉线怎么办
  • 专业网站优化方案合同模板网
  • 网站渠道建设wordpress免费电子商务插件
  • 做的好的淘宝客网站qian p.wordpress
  • 4成都网站建设可口可乐网站建设策划方案
  • 上海公司做网站怎么做网络销售
  • 技术支持上海网站建设申请域名哪个网站好
  • 建设部网站官网 施工许可wordpress 页面分类
  • 关键词优化包含深圳网站优化哪家好
  • 网站建设包含哪些方面网络网站开发设计
  • 找工地项目承包网站教育海报设计素材网站
  • 网站制作怎么办wordpress网站网速慢
  • 加强国资集团网站建设晋城网站开发
  • 网站如何做监测链接做网站用linux哪个版本
  • 导购网站怎么建立wordpress编辑主题
  • 学校网站建设招标网站建设编程语言
  • 腾讯云服务器如何建设网站搜索引擎付费推广