首页 > 代码库 > 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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。