单一模式析构问题

class Singleton{


public:

~Singleton();


static Singleton* getInstance();
static void destroy();


private:
static Singleton* pInstance;
Singleton();


};

Singleton* Singleton::getInstance()
{
if(pInstance == 0)
{
pInstance = new Singleton();
}
return pInstance;
}

以上这种写法的单一模式,在程序退出的时候不会自动析构,必须手动delete 或者调用destory()函数

class Singleton{


public:

~Singleton();


static Singleton* getInstance();


private:
Singleton();


};

Singleton* Singleton::getInstance()
{
static Singleton pInstance;
}
return &pInstance;
}

此种写发,在程序退出时候,会调用析构函数,但是线程安全吗?

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...