线程安全的单例模式

2023-11-18

线程安全的单例模式:
单例模式:属于创建类型的一种常用的软件设计模式,通过单例模式创建的类在当前进程中只有一个实例,一份资源只能被申请加载一次。
如何实现

  1. 饿汉模式:资源在程序初始化的时候就去加载,后边使用的时候直接使用,使用会非常流畅,但是有可能会加载上根本用不到的资源,而且程序初始化的时间也会较慢

  2. 懒汉模式:在进行资源的使用时,缺少这个资源才去加载,程序初始化的速度比较快,但是初次加载某个模块时会比较慢,因为这时候需要加载相应的资源。

饿汉模式实现方式:
使用static将某成员变量定义为静态成员变量,这样所有对象共用同一份资源,并且在程序初始化的时候就会加载资源,不涉及线程安全

代码:

class single_instance{
   
	
public:

	int* get_instance()
	{
   
		return &_data;	
	}


private:
	static int _data;
};
int single_instance::_data=10;


int main()
{
   
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线程安全的单例模式 的相关文章

随机推荐

  • ElasticSearch-DSL语句使用-Kibana界面操作

    Query DSL结构化查询介绍 Query DSL是一个Java开源框架用于构建类型安全的SQL查询语句 采用API代替传统的拼接字符串来构造查询语句 目前Querydsl支持的平台包括JPA JDO SQL Java Collectio
  • R语言数据分析案例合集

    案例一 汽车数据可视化分析 R ggplot2 案例二 房价指数的分析与预测 时间序列
  • 简单了解照相机

    以上是随便找网上找的一张正经的照相机图片 如今照相机各种各样 今天我们会简单了解一下照相机的工作原理 涉及的工作原理 主要是这两个原理 话说很早很早的时候 我们的老祖宗 墨子就发现了 用一个带有小孔的板遮挡在墙体与物体之间 墙体上就会形成物
  • idea中使用git stash和git unstash

    一 git中没有提交到本地仓库的改变内容会带到别的分支 git 切换分支时会把未add或未commit的内容带过去 这样可能造成代码覆盖的问题 这个在工作中会经常遇到 二 对本地仓库的文件进行了修改 但没有提交到本地仓库 切换分支时会造成代
  • 小程序微信支付功能逻辑

    官方的思维图在下看不懂 自己整理一份以备后用 1 打开Pay付款页面 2 用订单号 查看订单信息前端展示 3 点击付款按钮 提交订单ID到后台 创建微信预支付交易订单 用JSAPI下单 4 返回创建后的 预支付订单编号信息 存入数据表 5
  • 用Python实现BP神经网络(附代码)

    用Python实现BP神经网络 附代码 大家好 我是毕加锁 锁 今天教大家用Python实现BP神经网络 附代码 用Python实现出来的机器学习算法都是什么样子呢 前两期线性回归及逻辑回归项目已发布 见文末链接 今天来讲讲BP神经网络 B
  • IntelliJ IDEA插件开发指南(一)

    概要 工欲善其事必先利其器 虽然IntelliJ IDEA的功能已经足够的强大 但是也无法满足开发人员想要的一切功能 对于此 IDEA提供了API接口供开发者进行插件开发扩展 但目前来说 网上对于IDEA插件开发的文档大多讲的不是很清楚 自
  • HTML,js,jQuery的1+S证书学习资料

    诸位 我是曜耀 今天为大家带来是关于大学期间考1 s证书的学习资料 1 S是教育部 国家发展改革委 财政部 市场监管总局联合印发 关于在院校实施 学历证书 若干职业技能等级证书 制度试点方案 部署启动 学历证书 若干职业技能等级证书 简称1
  • ‘gbk‘ codec can‘t decode byte 0xae in position 199: illegal multibyte sequen 问题解决

    在 机器学习实战 第四章中 使用朴素贝叶斯过滤垃圾邮件出现了 gbk codec can t decode byte 0xae in position 199 illegal multibyte sequen 错误 原因在于 email g
  • js url上添加随机数防止缓存

    1 通常使用ajax访问url添加 JS ajax请求地址后加随机参数 比如XXXX t new Date getTime 或者 在url后面加一个随机数 url test jsp number Math random 浏览器为了提高用户访
  • 芯片细分领域

  • 苹果笔记本怎么查看计算机基本信息,如何查询苹果电脑型号_查询苹果电脑型号的方法...

    新买入苹果电脑后无法确认是什么型号 虽然可以通过电脑外箱和机身标签识别 但此不够内容不够详细 那么还有什么办法查询苹果电脑型号呢 Mac的机型信息并不是直接可以在电脑的系统信息中查询到 而是根据Mac的信息来对比查询 下面快来看看操作方法
  • Android开发之合并文件的几种方式

    下面介绍合并文件的几种方式 并通过合并amr文件来举例介绍合并文件的具体流程 amr格式的文件头是6字节 所以在进行文件合并的时候要减去除第一个文件以外的其他文件的文件头 注意 不同文件的文件头是不一样的 所以在合并的时候根据不同文件相应的
  • 字节流

    import java io FileInputStream import java io FileNotFoundException import java io FileOutputStream import java io IOExc
  • AltiumDesigner安装及基本使用

    目录 一 Altium Designer2018下载安装 二 配置Altium Designer 三 元件库下载安装 四 简单使用软件画出基本电路图 五 总结心得 六 参考链接 一 Altium Designer2018下载安装 百度网盘下
  • 多模态模型学习1——CLIP对比学习 语言-图像预训练模型

    多模态模型学习1 CLIP对比学习 语言 图像预训练模型 学习前言 什么是CLIP模型 代码下载 CLIP实现思路 一 网络结构介绍 1 Image Encoder a Patch Position Embedding b Transfor
  • SQL中with as 用法

    with temp1 as select from table limit 10 Select from temp1 也可以嵌套 with temp1 as select from table limit 10 temp2 as selec
  • js添加类名的两种方法

    1 通过className来添加 删除类名 添加类名 获取元素 className 类名1 类名2 多个类名用空格隔开 移除类名 获取元素名 className 直接等于一个空字符串即可删除类名 2 通过classList来添加 删除类名
  • GLES2.0中文API-glHint

    名称 glHint 指定特定于实现的提示 C规范 void glHint GLenum target GLenum mode 参数 target 指定一个符号常量 指示要控制的行为 接受GL GENERATE MIPMAP HINT mod
  • 线程安全的单例模式

    线程安全的单例模式 单例模式 属于创建类型的一种常用的软件设计模式 通过单例模式创建的类在当前进程中只有一个实例 一份资源只能被申请加载一次 如何实现 饿汉模式 资源在程序初始化的时候就去加载 后边使用的时候直接使用 使用会非常流畅 但是有