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

法律咨询网站开发沃通 wordpress

法律咨询网站开发,沃通 wordpress,宁波网站制作 收费,wordpress小小工具单例模式即保证一个类只有一个实例#xff0c;并提供一个访问该单例的接口。 实例 1.懒汉式 用的时候才创建单例#xff0c;“懒”。 Singleton.h #ifndef SINGLETON_H_ #define SINGLETON_H_#include iostream #include string #include mutex…单例模式即保证一个类只有一个实例并提供一个访问该单例的接口。 实例 1.懒汉式 用的时候才创建单例“懒”。 Singleton.h #ifndef SINGLETON_H_ #define SINGLETON_H_#include iostream #include string #include mutexclass Singleton {public:static Singleton* GetInstance() {if (instance_ nullptr) {// 加锁保证多个线程并发调用getInstance()时只会创建一个实例m_mutex_.lock();if (instance_ nullptr) {instance_ new Singleton();}m_mutex_.unlock();}return instance_;}private:Singleton() {}static Singleton* instance_;static std::mutex m_mutex_; };#endif // SINGLETON_H_ 这就是双重检验锁保障了线程安全。第一个判空可加速判断是否已有单例第二个锁内的判空是为了解决多线程问题两个线程同时走到lock且instance_都为nullptr。 Singleton.cpp #include Singleton.h// 静态变量instance初始化不要放在头文件中, 如果多个文件包含singleton.h会出现重复定义问题 Singleton* Singleton::instance_ nullptr; std::mutex Singleton::m_mutex_; main.cpp #include iostream #include Singleton.hint main() {Singleton *s1 Singleton::GetInstance();Singleton *s2 Singleton::GetInstance();std::cout s1地址: s1 std::endl;std::cout s2地址: s2 std::endl;return 0; } 编译运行 $g -g main.cpp Singleton.cpp -stdc11 -o singleton $./singleton s1地址: 0x95a040 s2地址: 0x95a040 2. 饿汉式 类初始化就创建单例GetInstance()只是获取动作“饿”。  Singleton.h #ifndef SINGLETON_H_ #define SINGLETON_H_class Singleton {public:static Singleton* GetInstance() {return instance_;}private:Singleton() {}static Singleton* instance_; };#endif // SINGLETON_H_ Singleton.cpp #include Singleton.hSingleton* Singleton::instance_ new Singleton(); main.cpp #include iostream #include Singleton.hint main() {Singleton *s1 Singleton::GetInstance();Singleton *s2 Singleton::GetInstance();std::cout s1地址: s1 std::endl;std::cout s2地址: s2 std::endl;return 0; } 编译运行 $g -g main.cpp Singleton.cpp -stdc11 -o singleton $./singleton s1地址: 0x18a8040 s2地址: 0x18a8040 3. Meyers Singleton Meyers Singleton是Scott Meyers提出的C单例的推荐写法。它将单例对象作为局部static对象定义在函数内部  #ifndef SINGLETON_H_ #define SINGLETON_H_class Singleton {public:static Singleton GetInstance() {static Singleton instance;return instance;}Singleton(const Singleton) delete;Singleton operator(const Singleton) delete;private:Singleton() {} };#endif // SINGLETON_H_ 需要C11支持C11保证static成员初始化的线程安全
http://www.dnsts.com.cn/news/190095.html

相关文章:

  • html5 网站推荐专门做搞笑游戏视频网站
  • 百度网盟推广网站网站定制开发优点
  • 前程无忧网深圳网站建设类岗位建设网站怎么提需求
  • 南昌网站推广排名政务信息网站建设研究
  • 免费软件下载网站app农产品线上推广方案
  • 搜索引擎网站制作WordPress搜索不支持中文
  • 做网站市场报价步登顶网站设计开发人员
  • 做淘宝客网站做网站只用前端知识可以吗
  • 做自媒体小视屏哪个网站好企业网站制作免费下载
  • 中国微电影 网站开发者wordpress显示缩略图 摘要
  • 网站建设必须安装程序wordpress发号系统
  • 怎么做简单的微信浏览的网站第三方微信网站建设
  • 做现货需要关注的网站wordpress系统安装
  • seo网站推广怎么制作自己的小程序
  • 网站充值怎么做的网站建设销售的技巧话语
  • 北京seo顾问服务南京怎样优化关键词排名
  • 专业的网站开发联系方式wordpress 文章图集
  • 东莞网站关键词优化广州17做网站
  • 黄山公司做网站网站建设制作 企业站开发哪家好
  • 明星个人网站设计域名解析网站登录
  • 网站建站的费用一个空间建多个网站的方法
  • 广州制片公司网站深圳市做网站的
  • 编程猫官方网站入口有哪些网站可以做外贸
  • 上海机械网站建设全球最好的云服务器
  • 云南网站建设营销舟山市定海区建设规划局网站
  • wordpress取消默认图片南昌seo数据监控
  • 平面设计好的网站建设银行招聘官方网站
  • 曲沃网站建设网站正在建设中 文案
  • 网站建设需求调研过程php网站建设制作设计
  • 域名第二年续费价格网站建设优化的书籍