单例模式(懒汉与饿汉模式)

本文深入解析单例模式中的两种实现方式——饿汉模式与懒汉模式。饿汉模式在类加载时就创建实例,而懒汉模式则在第一次调用时才创建,通过加锁确保线程安全。文章提供了C++代码示例,帮助读者理解不同场景下模式的选择。

单例饿汉模式
class m_idler
{
private:
m_idler(){}
m_idler(const m_idler&){}
private:
static m_idlern;
public:
static m_idler
get()
{
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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值