单例设计模式共享数据问题分析、解决
面临的问题:需要我们自己创建的线程中来创建单例,这个线程不止一个。
static SingleCls *GetInstance()
{
// c++11之后这种写法是安全的,由static保证
if (m_instance == nullptr)
{
m_instance = new SingleCls;
static GC gc;
}
return m_instance;
}
上面代码如果是C++11之前就需要加锁
在C++编程中,单例设计模式用于确保类只有一个实例。在C++11之前,为了保证多线程环境下的线程安全,创建单例可能需要加锁。然而,从C++11开始,静态初始化的线程安全性使得如`GetInstance`方法所示的代码无需额外的锁也能确保线程安全。这段代码在C++11之后的版本中,通过静态局部变量的初始化保证了线程安全的单例实例化。
4215

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



