1. 程式人生 > >c++單例模式,多執行緒使用

c++單例模式,多執行緒使用

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;
};