单例模式
class single
{
private:
static single *p;
static pthread_mutex_t lock;
single()
{
pthread_mutex_init(&lock, NULL);
}
~single(){}
public:
static single* getInstance();
};
pthread_mutex_t single::lock;
single* single::p = NULL;
single* single::getInstance()
{
if(p==NULL)
{
pthread_mutex_lock(&lock);
if(p==NULL)
{
p = new single;
}
pthread_mutex_unlock(&lock);
}
return p;
}
class single
{
private:
single(){}
~single(){}
public:
static single* getInstance();
};
single* single::getInstance()
{
static single instance;
return &instance;
}
class single
{
private:
static single* p;
single(){}
~single(){}
public:
static single* getinstance();
};
single* single::p = new single();
single* single::getinstance()
{
retunrn p;
}