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

单例模式(饱汉式和饿汉式)

饱汉式

在真正需要使用的时候才进行构建,而不是在一开始就创建。如果要保证线程安全,需要使用一个mutex来保证。

饿汉式

  • 类加载时即创建对象,线程安全
  • 优点:执行效率高
  • 缺点:类加载时就初始化,浪费内存资源
#include<iostream>

using namespace std;

class Single{
    public:
        static Single* getInstance(){
            // if(pointer == nullptr){
            //     pointer = new Single();
            //     pointer->t = 10;
            // }
            return pointer;
        }
        void get(){
            cout << t << endl;
        }
        ~Single(){}

    private:
        Single(){};
        int t = 0;
        static Single* pointer;
};

// Single* Single::pointer = nullptr;   // 饱汉式

Single* Single::pointer = new Single();  // 饿汉式

int main(){
    auto p1 = Single::getInstance();
    auto p2 = Single::getInstance();
    cout << std::boolalpha << bool(p1 == p2) << endl;  
    return 0;
}

http://www.kler.cn/news/136187.html

相关文章:

  • 全球知名度最高的华人起名大师颜廷利:世界顶级思想哲学教育家
  • 设计模式——过滤器模式
  • Electron 离线环境打包解决方案(electron-forge)
  • Java后端面试题:Java基础篇
  • 手把手教你安装最强文生图工具ComfyUI
  • 潮畔汽车文化营地开营啦!全民测试场启动典礼圆满成功
  • Python大数据之linux学习总结——day10_hive调优
  • 【洛谷 P3743】kotori的设备 题解(二分答案+递归)
  • 在python中分别利用numpy,tensorflow,pytorch实现数据的增加维度(升维),减少维度(降维)
  • 微机原理_14
  • 复杂数据统计与R语言程序设计实验一
  • Android 11.0 展讯平台关于ota升级开机logo的相关功能实现
  • 【C++】【Opencv】cv::Canny()边缘检测函数详解和示例
  • MATLAB实战应用案例精讲(二)-【图像处理】图像分类(附MATLAB代码实现)
  • 设置指定时间之前的时间不可选
  • k8s上Pod生命周期、重启策略、容器探测简介
  • 认识前端包常用包管理工具(npm、cnpm、pnpm、nvm、yarn)
  • 苹果CMS首涂第30套可装修DIY主题模板免授权版
  • Spring IOC - Bean的生命周期之依赖注入
  • 【论文阅读笔记】Deep learning for time series classification: a review
  • 数理统计的基本概念(二)
  • 奇富科技发布鸿蒙元服务1.0版本,打造鸿蒙生态金融科技全新体验
  • 【总结】坐标变换和过渡矩阵(易忘记)
  • AI绘画使用Stable Diffusion(SDXL)绘制三星堆风格的图片
  • LLM模型-讯飞星火与百度文心api调用
  • 竞赛 题目:基于深度学习的人脸表情识别 - 卷积神经网络 竞赛项目 代码