单例模式:保证一个类只创建一个对象。要考虑到线程安全问题
线程安全:在一个对象new的时候,另一个对象如果同时new,会造成创建的对象不是单类的。所以在第一个对象进行开辟空间时要加互斥锁 mutex._Lock(); mutex._Unlock();引入boost库会使代码空间变大。
建议使用如下单例模式中的饿汉模式:
即:无论是否使用,都在程序开始的时候产生一个实例,并在以后的调用中返回该实例。(该方法是线程安全)
class Singleton
{
private:
static const Singleton* m_instance;
public:
static const Getinstance()
{return m_instance;}
};
const Singleton* Singleton:: m_instance=new Singleton;
void Test()
{
const Singleton* ptr1 =Singleton::Getinstance();
const Singleton* ptr2 =Singleton::Getinstance();//静态方法可通过类名直接调用
if(ptr1==ptr2)
cout<<"ok"<<endl;
}