#include "thread_pool.h"
#include <iostream>
#include <vector>
#include <thread>
#include <list>
#include <mutex>
using namespace std;
mutex res_mux;
//单例类
class MyCSA
{
private:
MyCSA() {};//私有化的构造函数
static MyCSA *m_instance;//静态成员变量
mutex mux;
public:
static MyCSA *getInstance()
{
if (m_instance == NULL)//双重锁定,双重检查
{
std::unique_lock<mutex>mymux(res_mux);
if (m_instance == nullptr)
{
m_instance = new MyCSA();
static ReleaseC l;
}
}
return m_instance;
}
class ReleaseC
{
public:
~ReleaseC()
{
if (MyCSA::m_instance)
{
delete MyCSA::m_instance;
MyCSA::m_instance = nullptr;
}
}
};
};
MyCSA *MyCSA::m_instance = NULL;
int main()
{
//一.设计模式大概谈
MyCSA*p_a = MyCSA::getInstance();//创建一个对象,返回该类(MyCSA)对象的指针;
MyCSA*p_b = MyCSA::getInstance();//创建一个对象,返回该类(MyCSA)对象的指针;
cout << "I love China!" << endl;//
}
单例模式,多线程
于 2022-03-02 14:16:44 首次发布