单例饿汉模式
class m_idler
{
private:
m_idler(){}
m_idler(const m_idler&){}
private:
static m_idlern;
public:
static m_idlerget()
{
return n;
}
};
m_idler* m_idler::n = new m_idler;
单例懒汉模式
class m_idler
{
private:
m_idler(){}
m_idler(const m_idler&)
{
pthread_mutex_init(&mutex);
}
private:
static m_idlern;
static pthread_mutex_t mutex;
public:
static m_idler * get()
{
if(n==NULL)
{
pthread_mutex_lock(mutex);
if(n == NULL)
{
n=new m_idler;
}
pthread_mutex_unlock(mutex);
}
return n;
}
};
m_idler m_idler::n = NULL;