懒汉:(非到用的时候才构造出来一个对象)
class Sigleton
{
private:
Sigleton()
{
this->id=0;
}
static Sigleton *sigleton;
static pthread_mutex_t lock;
public:
static Sigleton* getInstance()
{
if(sigleton)
return sigleton;
else
{
if(!sigleton)
{
if(!sigleton)
{
pthread_mutex_lock(&lock);
sigleton=new Sigleton;
pthread_mutex_unlock(&lock);
}
}
return sigleton;
}
}
int id;
};
Sigleton *Sigleton::sigleton= nullptr;
pthread_mutex_t Sigleton::lock=PTHREAD_MUTEX_INITIALIZER;
饿汉(饥不择食,类出现的时候其唯一的对象就出现了)
class singleton
{
protected:
singleton(int id)
{
this->id=id;
}
private:
static singleton* p;
public:
static singleton* initance();
int id;
};
singleton* singleton::p = new singleton(10);
singleton* singleton::initance()
{
return p;
}