码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式的实现(饿汉式和懒汉式)

时间:2017-11-18 18:57:25      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:线程安全   private   class   stat   div   static   public   style   protect   

1.懒汉模式。

class Singleton  
{  
private:  
    static Singleton* m_instance;  
    Singleton(){}  
public:  
    static Singleton* getInstance();  
};  
  
Singleton* Singleton::getInstance()  
{  
    if(NULL == m_instance)  
    {  
        Lock();//借用其它类来实现,如boost  
        if(NULL == m_instance)  
        {  
            m_instance = new Singleton;  
        }  
        UnLock();  
    }  
    return m_instance;  
}  

2. 饿汉式:

class singleton
{
protected:
    singleton()
    {}
private:
    static singleton* p;
public:
    static singleton* initance();
};
singleton* singleton::p = new singleton;
singleton* singleton::initance()
{
    return p;
}

饿汉式是线程安全的。

单例模式的实现(饿汉式和懒汉式)

标签:线程安全   private   class   stat   div   static   public   style   protect   

原文地址:http://www.cnblogs.com/simplepaul/p/7857491.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!