这段时间在做一个服务器的重构项目,其中有几个类需要用到单例。整理几种写法,如下。欢迎各位提出意见,或者更好的写法.
1:标准实现
class Singleton{
private:
Singleton(){};
virtual ~Singleton(){};
public:
Singleton *Instance();
protect:
static Singleton *_instance;
};
//Singleton.h
Singleton *Singleton::instance()
{
if(NULL == _instance){
_instance = new Singleton();
}
return _instance;
}
//Singleton.cpp
存在问题:
①:单例对象的资源无法被回收
②:非线程安全,如果两个或者多个线程同时访问Singleton::