1. 程式人生 > >單例模式的實現(餓漢式和懶漢式)

單例模式的實現(餓漢式和懶漢式)

null cte get pri single singleton ins 安全 tin

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; }

餓漢式是線程安全的。

單例模式的實現(餓漢式和懶漢式)