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

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

一、什么是线程安全

在拥有共享数据的多条数据并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。

二、如何保证线程安全

法1、给共享的资源加把锁,保证每个资源变量每时每刻至多被一个线程占用;

法2、让线程也拥有资源,不用去共享进程中的资源。如使用threadlock可以为每个线程的维护一个私有的本地变量。

三、什么是单例模式

单例模式指在整个系统生命周期里,保证一个类只能产生一个实例,确保该类的唯一性。

3.1 单例模式分类

 单例模式可以分为懒汉式和饿汉式,两者之间的区别在于创建实例的时间不同:

(1)懒汉式:指系统运行中,实例并不存在,只有当需要使用该实例时,才会去创建并使用实例。(这种方式要考虑线程安全)

(2)饿汉式:指系统一运行,就初始化创建实例,当需要时,直接调用即可。(本身就线程安全,没有多线程的问题)

3.2 单例类的特点

(1)构造函数和析构函数为private类型,目的禁止外部构造和析构

(2)拷贝构造函数和赋值构造函数为private类型,目的是禁止外部拷贝和赋值,确保实例的唯一性

(3)类里面有个获取实例的静态函数,可以全局访问

http://www.lryc.cn/news/205584.html

相关文章:

  • Python学习笔记--迭代
  • idea免费插件分享
  • Pytorch使用torch.utils.data.random_split拆分数据集,拆分后的数据集状况
  • 每日一练 | 华为认证真题练习Day122
  • SQL sever中函数(2)
  • win10专业版驱动开发
  • 【JavaEE】网络编程---TCP数据报套接字编程
  • 用 Go 访问 MySql 数据库
  • mac 升级node到指定版本
  • 欢迎进QQ群讨论交流
  • C语言解决八皇后问题
  • springboot集成canal,将数据发送至接口
  • Selenum八种常用定位(案例解析)
  • Web前端接入Microsoft Azure AI文本翻译
  • 容联七陌助力鱼跃医疗升级智能联络中心,让客户服务更“鱼跃”
  • 【Redis系列】在Centos7上安装Redis5.0保姆级教程!
  • 线性代数-Python-03:矩阵的变换 - 手写Matrix Transformation及numpy中的用法
  • 【单片机基础】按键状态机实现短按、长按、双击、三击和N击
  • Ubuntu虚拟机部署OpenStack
  • ES在企业项目中的实战总结,彻底掌握ES的使用
  • QT的Qporcess功能的使用
  • 【图灵诸葛】jvm笔记
  • 数据安全小课堂开讲啦!看这里!
  • 单片机矩阵键盘
  • 横坐标日期等间隔绘图 python示例代码
  • photoshop2024免费插件Portraiture3
  • NewStarCTF2023week4-More Fast(GC回收)
  • 和鲸赞助丨第16届中国R会议暨2023 X-AGI大会通知
  • Python第三方库 - Flask(python web框架)
  • c# sqlite 修改字段类型