單例模式的實現(餓漢式和懶漢式)
阿新 • • 發佈:2017-11-18
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; }
餓漢式是線程安全的。
單例模式的實現(餓漢式和懶漢式)