当前位置: 首页 > article >正文

c++ 并发与多线程(12)线程安全的单例模式-2

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

http://www.kler.cn/a/106101.html

相关文章:

  • HuggingFace:基于YOLOv8的人脸检测模型
  • 15分钟学 Go 第 59 天 :更高级的Go话题——接触微服务
  • STM32保护内部FLASH
  • SystemVerilog学习笔记(十一):接口
  • 大数据新视界 -- 大数据大厂之 Impala 性能飞跃:分区修剪优化的应用案例(下)(22 / 30)
  • 【项目开发】理解SSL延迟:为何HTTPS比HTTP慢?
  • Spring | Spring Cache 缓存框架
  • 将CSDN或Confluence文章转为微信公众号格式
  • torch VS tensorflow 同功能的api
  • Flutter和SwiftUI比较
  • 目标跟踪ZoomTrack: Target-aware Non-uniform Resizing for Efficient Visual Tracking
  • LeetCode二分查找
  • 如何为你的地图数据设置地图样式?
  • 华为---DHCP中继代理简介及示例配置
  • Databend 开源周报第 116 期
  • springcloud笔记 (8) -网关 Gateway
  • 结构伪类选择器
  • 小红书素人铺量推广费用是多少?
  • Netty进阶-黏包半包
  • 达芬奇MacOS最新中文版 DaVinci Resolve Studio 18中文注册秘钥
  • Go并发:使用sync.Pool来性能优化
  • Python深度学习实战-基于tensorflow.keras六步法搭建神经网络(附源码和实现效果)
  • 聊聊springboot的TomcatMetricsBinder
  • 什么是React中的高阶组件(Higher Order Component,HOC)?它的作用是什么?
  • 【EI会议征稿】2024年电力电子与人工智能国际学术会议(PEAI 2024)
  • 大数据-Storm流式框架(二)--wordcount案例