CPlusPlusThings/learn_class/modern_C++_30/memorymodel_atomic/lock_singleton.cpp
Light-City 1dca8dee82 update
2020-03-03 11:13:16 +08:00

26 lines
412 B
C++

//
// Created by light on 20-2-7.
//
#include <iostream>
using namespace std;
#include <mutex>
class singleton {
private:
singleton() {}
static singleton *p;
static mutex lock_;
public:
static singleton *instance();
};
singleton *singleton::p = nullptr;
singleton* singleton::instance() {
lock_guard<mutex> guard(lock_);
if (p == nullptr)
p = new singleton();
return p;
}