首页 > 代码库 > Singleton

Singleton

class Singleton{public:    ~Singleton();    static Singleton* GetInstance();private:    Singleton();    static Singleton* m_pInstance;    static pthread_mutex_t s_initLock;    class Deletor    {    public:        ~Deletor()        {            if (Singleton::m_pInstance)            {                delete Singleton::m_pInstance;                Singleton::m_pInstance = NULL;            }        }    };    static Deletor s_deletor;};Singleton* Singleton::m_pInstance;pthread_mutex_t Singleton::s_initLock = PTHREAD_MUTEX_INITIALIZER;Singleton::Deletor Singleton::s_deletor;Singleton::Singleton(){}Singleton::~Singleton(){}Singleton* Singleton::GetInstance(){    if (!m_pInstance)    {        pthread_mutex_lock(&s_initLock);        if (!m_pInstance)        {            m_pInstance = new Singleton;        }        pthread_mutex_unlock(&s_initLock);    }    return m_pInstance;}

 

Singleton