单例设计模式属于创建型设计模式,其目的是为了保证一个类仅有一个实例,此类提供一个访问该类的全局访问节点。
C++实现代码如下:
#include#include class Singleton { public: static Singleton *GetSingleton() { if(m_Singleton == NULL)//判断单例是否已经实例化-----------------------step1 { pthread_mutex_lock(&m_SingleMutex);//加锁 if(m_Singleton == NULL)//防止多线程运行时,某个线程运行到step1的时间在另一个线程运行到step1-step2之间 { m_Singleton = new Singleton();//-----------------------------------------step2 } pthread_mutex_unlock(&m_SingleMutex); } return m_Singleton; } private: Singleton() { } ~Singleton() { } private: static Singleton * m_Singleton; static pthread_mutex_t m_SingleMutex; }; pthread_mutex_t Singleton::m_SingleMutex = PTHREAD_MUTEX_INITIALIZER; Singleton *Singleton::m_Singleton = NULL; int main(void) { Singleton * pMain = Singleton::GetSingleton(); return 0; }



