一、内部静态变量的懒汉单例(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