static CSingleton* GetInstance()
{
if( m_pInstance == NULL ) //优化性能,总比锁快
{
CAutoLock lock( &cs ); //防止多线程引起的同步问题
if( m_pInstance == NULL ) //确保该段代码进入单线程模式,开始可靠性判断
{
m_pInstance = new CSingleton;
}
}
return m_pInstance;
}
2014年11月19日15:54:52
本文介绍了一种在多线程环境下使用双重检查锁定来优化单例模式实例化过程的方法。通过外部粗粒度判断和内部细粒度锁定,确保了线程安全的同时也提高了性能。
1196

被折叠的 条评论
为什么被折叠?



