尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

singleton_pattern

singleton_pattern
📅 发布时间:2026/6/18 4:45:56

什么是懒汉单例模式(程序在使用的时候才会构造这个类)
什么是饿汉单例模式(程序启动的时候就构造了这个类)
程序内只存在一个这样的类,不需要重复构造,避免浪费,如读取外部文件,只需一次读取,全局使用。

单例模式代码

//singleton_pattern.h
#pragma once
#include <memory>
#include <mutex>
class Monitor
{
public:static Monitor* getInstance();static Monitor& getInstance2();static void getName();
private:Monitor() = default;Monitor(const Monitor&) = delete;Monitor& operator=(const Monitor&) = delete;                static std::unique_ptr<Monitor> m_instance;static std::mutex m_mutex;
};#include <singleton_pattern.h>
//实例只会被创建一次,多线程下
std::unique_ptr<Monitor> Monitor::m_instance = nullptr;
Monitor* Monitor::getInstance() 
{if (m_instance == nullptr) {                     // 第一次检查(不加锁,提高性能)std::lock_guard<std::mutex> lock(m_mutex);   // 加锁if (m_instance == nullptr) {                 // 第二次检查(加锁保护)m_instance.reset(new Monitor());         // 创建实例}}return m_instance.get(); // 返回原始指针
}
//推荐
Monitor &Monitor::getInstance2()
{static Monitor instance; // Guaranteed to be destroyed.return instance;                      // Instantiated on first use.
}

上述代码保证单例模式可以安全的创建实例,数据的安全需要额外同步操作。

相关新闻

  • Python的Numpy、Pandas和Matplotlib(随笔)
  • CF2146E
  • 【博客导航】

最新新闻

  • 赛博格鼓手:机械臂协同演奏的技术实现与音乐应用
  • PL2303驱动兼容性终极指南:轻松搞定Windows 10/11黄色感叹号问题
  • “涪车出海”直达北非
  • 2026汉中防水补漏靠谱服务商盘点:屋面/厨卫/外墙/地下室渗水维修详解,适配秦巴盆地多雨湿冷防冻防潮甄选指南 - 宅安选房屋修缮
  • OpenHarmony鸿蒙PC完成ohos-sdk适配自动签名编译rust_decimal三方库,用于高精度十进制浮点场景
  • 2026大理防水补漏靠谱服务商盘点:屋面/厨卫/外墙/地下室渗水维修详解,适配滇西高原大风长雨季防潮甄选指南 - 宅安选房屋修缮

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号