笔记:单例模式

来源:互联网 发布:淘宝评价赚钱 编辑:程序博客网 时间:2024/06/03 17:21

饿汉式:
class Singleton
{
private:
Singleton(void);
Singleton(const Singleton& that);
private:
static Singleton s_instance;
public:
static Singleton& getInstance(void);
{
return s_instance;
}
}


懒汉式:
pthread_mutex_t Singleton::s_mutex = 
PTHREAD_MUTEX_INITIALIZER;

class Singleton
{
private:
Singleton(void);
Singleton(const Singleton& that);
private:
static Singleton* s_instance = NULL;
public:
static Singleton& getInstance(void)
{
if(!s_instance)
{
pthread_mutex_lock(&s_mutex);
if(!s_instance)// 这个if判断不可省略
s_instance = new Singleton;
pthread_mutex_unlock(&s_mutex);
}
return *s_instance;
}
}
















0 0
原创粉丝点击