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

城固县网站建设遵义网站建设公司

城固县网站建设,遵义网站建设公司,阿里巴巴logo高清图,闲聊app是哪个公司开发单例模式即保证一个类只有一个实例#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.hkea.cn/news/14529130/

相关文章:

  • 网站访问量统计工具老百姓网免费发布信息
  • 做网站的开发软件是什么如何查询一个网站的icp
  • php网站源代码修改做网站用最新软件
  • 公司网站版面怎么设计win7 iis创建网站
  • 无极网站建设谁有人和兽做的网站?
  • 网站集约化建设的好处汕头建设银行电话
  • 网站开发高级工程师网络营销是什么活动
  • 网站建设需要什么证件西京一师一优课建设网站
  • 网站上的格式用html怎么做桂林同城网站
  • 用dz做网站怎么设置数据库.net网站开发全过程
  • vs2013 网站建设怎么用默认程序做网站
  • 威海建设集团网站首页商城网站 不易优化
  • 吉林城市建设学校网站wordpress 繁简
  • 有哪些可以做调查的网站建网站哪便宜
  • 资阳市网站seo设计之家图片
  • 怎么用vs2010做网站济宁网站开发公司
  • 泸溪县建设局网站广水住房和城乡建设部网站
  • 平台推广网站天津网站建设基本流程图
  • 免费h5网站制作平台海外网红营销
  • 网站设计开发中的具体步骤服务区里可以做多少个网站
  • 制作网站公司合同注意事项温州市网站制作多少钱
  • 商业网站服务辽宁建筑网
  • 改进网站建设wordpress用户名备注
  • 网站内容编写方法网站平台运营方案
  • 域名绿标免费申请google搜索优化
  • 国涟建设集团有限公司网站青岛公司注册
  • 海口专业网站制作策划威县做网站哪里便宜
  • 秀山网站建设端午节手抄报获奖用文件传输协议登录网站
  • 网站开发什么课程有自己域名的个人网站
  • 网站程序 seo怎么保证网站安全性