UDN-企业互联网技术人气社区

请实现一个单例模式的类,要求线程安全

发布者: 少年包工头 | 发布时间: 2015-5-19 11:01| 查看数: 4000| 评论数: 2|帖子模式

请实现一个单例模式的类,要求线程安全

最新评论

回复用户4 发表于 2015-5-19 12:20:56

  在C++之后,下面的实现是个线程安全的单例模式实现:
  
  1. class Singleton
  2. {
  3. private:
  4. Singleton();
  5. Singleton(const Singleton &s);
  6. Singleton& operator=(const Singleton &s);
  7. public:
  8. static Singleton* GetInstance()
  9. {
  10.   static Singleton instance;
  11.   return &instance;
  12. }
  13. };
复制代码
大黄蛰虫丸 发表于 2015-5-26 16:09:57
  1. class Singleton//懒汉模式
  2. {
  3. private:
  4.     Singleton(){}
  5. public:
  6.     static Singleton* p;
  7.     static Singleton* getInstance();
  8. };
  9. Singleton* Singleton::p=NULL;
  10. Singleton* Singleton::getInstance()
  11. {
  12.     if(NULL==p)
  13.     {
  14.         if(mtx.try_lock())
  15.         {
  16.             p=new Singleton;
  17.             mtx.unlock();
  18.         }
  19.     }
  20.     return p;
  21. }
  22. class Singleton//饿汉模式
  23. {
  24. private:
  25.     Singleton(){}
  26. public:
  27.     static Singleton* p;
  28.     static Singleton* getInstance()
  29.     {
  30.         return p;
  31.     }
  32. };
  33. Singleton* Singleton::p=new Singleton;
复制代码
关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部