一、内部静态变量的懒汉单例(C++11 线程安全)
#include <iostream>
#include <thread>
#include <vector>class Single
{
public:// 获取单实例对象static Single& GetInstance();// 打印实例地址void Print();private:// 私有构造函数,防止外部创建对象Single(){std::cout << "构造函数" << std::endl;}// 删除拷贝构造和赋值构造,防止复制Single(const Single&) = delete;Single& operator=(const Single&) = delete;public:// 确保析构函数可以被调用~Single(){std::cout << "析构函数" << std::endl;}private:// 内部静态变量,线程安全的懒汉单例static Single instance;
};// 静态变量初始化
Single Single::instance;Single& Single::GetInstance()
{return instance;
}void Single::Print()
{std::cout << "我的实例内存地址是:" << this << std::endl;
}void ThreadFunction(int threadID)
{Single& singleton