c++局部静态变量是线程安全的

发布时间 2023-05-19 19:57:34作者: Backsword

mark一下。
c++11之前,局部静态变量初始化并不是线程安全的。
c++11之后,当局部静态在初始化的过程中,有新的获取,会阻塞等待初始化成功。

class Instance
{
public:
//...
	static GetInstace()
	{
		static Instance instance;
		return instance;
	}
};

new ,理论上应该也是可以的,因为是先 new 然后赋值给 static 变量, static 赋值成功,代表 static 变量初始化成功。