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

【C++学习(37)】并发性模式:如生产者-消费者、读写锁等。 架构模式:如MVC、MVVM等。属于23 种设计模式吗? RAII 的关系?

并发性模式(如生产者-消费者、读写锁等)和架构模式(如 MVC、MVVM 等)并不属于 Gang of Four(GoF) 提出的 23 种经典设计模式 中。这些模式是其他领域中的设计模式,虽然它们和 GoF 的设计模式有交集,尤其是在程序架构和资源管理方面,但并不直接包含在 GoF 的 23 种设计模式内。

文章目录

      • 1. 并发性模式(Concurrency Patterns)
      • 2. 架构模式(Architectural Patterns)
      • 3. 23 种经典设计模式
      • 4. GoF 23 种设计模式与并发/架构模式的关系
      • 5 RAII(Resource Acquisition Is Initialization)
        • 1. RAII 与并发性模式
        • 2. RAII 与架构模式
        • RAII 通过自动化资源管理为许多设计模式提供支持
      • 总结

1. 并发性模式(Concurrency Patterns)

并发性模式主要用于解决多线程环境中资源共享、线程同步、任务协调等问题。这些模式和 GoF 的设计模式有些重叠,尤其在 行为型模式 或 对象之间的协作 的实现上,但它们专门针对并发编程中的问题。

常见的并发性模式包括:

  • 生产者-消费者模式(Producer-Consumer Pattern):协调两个线程(生产者和消费者)之间的工作,通常通过一个共享缓冲区来实现。
  • 读写锁模式(Read-Write Lock Pattern):允许多个线程同时读取数据,但在写操作时只允许一个线程进行写操作,从而提高并发性能。
  • 线程池模式(Thread Pool Pattern):维护一个线程池,多个任务被提交到线程池,由池中的线程来执行,避免频繁创建和销毁线程的开销。
  • 单例模式(Singleton Pattern):虽然是 GoF 的设计模式,但它在并发模式中经常与线程同步机制结合使用,以确保在多线程环境下只有一个实例。

这些并发模式是 并发编程 和 多线程编程 中常用的设计模式,尽管 GoF 并没有单独讨论它们,但它们在实际开发中广泛使用,尤其在涉及共享资源的并发应用中。

2. 架构模式(Architectural Patterns)

架构模式主要是描述系统的高层结构,如何组织不同的组件或模块,以实现系统的整体架构设计。这些模式与 GoF 23 种设计模式的目标不同,GoF 设计模式关注的是类与对象的关系和交互,而架构模式通常关注系统的层次结构、模块划分等更宏观的设计。

常见的架构模式包括:

  • MVC(Model-View-Controller):将系统分为三部分:
http://www.lryc.cn/news/485159.html

相关文章:

  • [Mysql] Mysql的多表查询----多表关系(下)
  • 命名空间(namespace)详解(一)
  • HarmonyOS ArkTs 解决流式传输编码问题
  • NPOI 实现Excel模板导出
  • 【OpenGL】OpenGL简介
  • shell命令笔记
  • qml显示OpenCV mat图片
  • 类与对象(2)---类的6个默认成员函数
  • 华为云租户网络-用的是隧道技术
  • 手搓神经网络(MLP)解决MNIST手写数字识别问题 | 数学推导+代码实现 | 仅用numpy,tensor和torch基本计算 | 含正反向传播数学推导
  • esp32c3安装micropython环境
  • ES6的Iterator 和 for...of 循环
  • 《C语言程序设计现代方法》note-4 基本类型 强制类型转换 类型定义
  • MySQL(4)【数据类型 —— 数值类型】
  • Golang超详细入门教程
  • 鸿蒙NEXT自定义组件:太极Loading
  • FPGA 第7讲 简单组合逻辑译码器
  • opencv kdtree pcl kdtree 效率对比
  • 1+X应急响应(网络)系统备份:
  • python os.path.dirname(path) 详解
  • 深度解析 Feign
  • AI工业大模型报告:体系架构、关键技术与典型应用
  • 深入理解接口测试:实用指南与最佳实践5.0(五)
  • 常用List工具类(取交集、并集等等)
  • 4 C++ 复合类型:引用和指针
  • ABAP关于PS模块CJ20N中项目物料的屏幕和字段增强CI_RSADD
  • 探索IDE的无限可能:使用技巧与插件推荐
  • 自动化生成测试用例:利用OpenAI提升电商网站测试覆盖率
  • 时间序列关于可解释性值得关注的论文汇总-第2篇
  • Vulnhub:DC-4靶机渗透——土豆片的靶机渗透练习