java和C++之单例类双重检查加锁

举报
chenyu 发表于 2021/07/27 01:37:53 2021/07/27
【摘要】 1、Java public class Singleton { private volatile static Singleton instance; public static Singleton getInstance () { if (instance == null) { synchronized (Singleton.class) { if (instanc...

1、Java


   
  1. public class Singleton {
  2. private volatile static Singleton instance;
  3. public static Singleton getInstance () {
  4. if (instance == null) {
  5. synchronized (Singleton.class) {
  6. if (instance == null) {
  7. instance = new Singleton();
  8. }
  9. }
  10. }
  11. return instance;
  12. }
  13. }

 


2、C++


   
  1. class Singleton {
  2. private:
  3. volatile Singleton* pInst = 0;
  4. public:
  5. static Singleton* GetInstance() {
  6. if (pInst == 0) {
  7. lock();
  8. if (pInst == 0) {
  9. pInst = new Singleton();
  10. }
  11. unlock();
  12. }
  13. return pInst;
  14. }
  15. }
 

 


3、总结

同步机制等价于锁机制

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/78336543

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。