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

猜你喜欢

转载自blog.csdn.net/wWX336815/article/details/81279635