单例模式:
//单例模式:
//加锁:
class Singleton
{
public:
static Singleton* getIntance()
{
if (pobject == NULL)//懒加载,只有在使用时才生成
{
pthread_mutex_lock(&mutex);//多线程线程安全问题
if (pobject == NULL)//单线程时效率问题
{
pobject = new Singleton();
}
pthread_mutex_lock(&mutex);
}
return pobject;
}
private:
Singleton(){}
static Singleton *pobject;
};
Singleton* Singleton::pobject = NULL;
//懒汉模式
class Singleton {
//懒汉式单例模式
//比较懒,在类加载时,不创建实例,因此类加载速度快,但运行时获取对象的速度慢
private :
Singleton() {}
static Singleton* intance;
public:
static Singleton* getInstance()
{
if(intance == NULL)
{
intance = new Singleton();
}
return intance;
}
};
Singleton* Singleton::intance = NULL;
//饿汉模式
class Singlet