c++ 11保证了这样做是线程安全的。
一:class Singleton{
static Singleton* GetInstance(){
static Singleton s;
return &s;
}
private:
Singleton(){}
Singleton(const Singleton& that);
};
二:
Singleton* Singleton::ins = NULL;
class Singleton{
static Singleton* GetInstance(){
if(NULL == ins){
lock();
if(NULL == ins){
ins = new Singleton;
}
unlock();
}
return ins;
}
private:
Singleton(){}
static Singleton* ins;
};