class Singleton
{
public:
static Singleton* getInstance()
{
if (instance == NULL)
{
//mutex.lock();
if (instance == NULL)
{
instance = new Singleton();
}
//mutex.unlock();
}
return instance;
}
private:
static Singleton* instance;
//Mutex mutex;
};
Singleton* Singleton::instance = NULL;
Mutex取绝于平台。。。
注意:两次instance == null的判断不可少。才能保证多线程安全,这种方法也叫Double-Check Locking(双重锁定)