您当前的位置: 首页 >  c++

C++ std::call_once单次调用

龚建波 发布时间:2019-08-25 14:16:34 ,浏览量:3

在类似“多线程中使用单例的懒汉式初始化”场景中,为了提高效率,通常不是简单的锁定,这会导致不必要的线程序列化。许多人都试图想出一个更好的实现方法,包括臭名昭著的双重检查锁定(Double-Checked Locking)模式(DCLP)。

#include 
#include 
#include 

class Singleton
{
public:
	static Singleton* getInstance() {
		if (!instancePtr) {
			std::lock_guard guard(initMutex);
			if (!instancePtr) {
				instancePtr = new Singleton();
				std::cout             
关注
打赏
1688896170
查看更多评论
0.8435s