单例模式的实现(饿汉式和懒汉式)
Posted 爱简单的Paul
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式的实现(饿汉式和懒汉式)相关的知识,希望对你有一定的参考价值。
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; }
饿汉式是线程安全的。
以上是关于单例模式的实现(饿汉式和懒汉式)的主要内容,如果未能解决你的问题,请参考以下文章