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

实战C++手写线程池


课程总目录


文章目录

  • 一、项目必备基础概念
    • 1.1 并发和并行
    • 1.2 多线程的优势
    • 1.3 线程的消耗
    • 1.4 线程池的优势
    • 1.5 线程池的两种模式:fixed模式和cached模式
    • 1.6 线程同步之线程互斥
    • 1.7 线程同步之线程通信
      • 1.7.1 条件变量
      • 1.7.2 信号量
    • 1.8 项目设计图浏览
  • 二、线程池代码展示
  • 三、线程池资源回收死锁问题分析
  • 四、线程资源回收策略修改优化
  • 五、Linux平台编译线程池动态库
  • 六、packaged_task和future机制


一、项目必备基础概念

作为五大池(内存池、连接池、线程池、进程池、协程池)之一,线程池的应用非常广泛,不管是客户端程序,还是后台服务程序,都是提高业务处理能力的必备模块。有很多开源的线程池实现,虽然各自接口使用上稍有区别,但是其核心实现原理都是基本相同的。

1.1 并发和并行

  • CPU单核
  • CPU多核、多CPU

并发:单核上,多个线程占用不同的CPU时间片,物理上还是串行执行的,但是由于每个线程占用的CPU时间片非常短(比如10ms),看起来就像是多个线程都在共同执行一样,这样的场景称作并发(concurrent)

并行:在多核上或者多CPU上,多个线程是在真正的同时执行,这样的场景称作并行(parallel)

1.2 多线程的优势

首先我们要认识到一个问题

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

相关文章:

  • Alluxio Enterprise AI on K8s FIO 测试教程
  • 学习使用在windows系统上安装vue前端框架以及环境配置图文教程
  • 基于Delphi的题库生成系统
  • 鸿蒙OpenHarmony【小型系统基础内核(进程管理任务)】子系统开发
  • SpringBoot框架下的客户管理策略
  • GreenPlum与PostgreSQL数据库
  • CVE-2024-46101
  • PHPStorm如何调整字体大小
  • string 的介绍及使用
  • 高等数学的后续课程
  • 基于 K8S kubernetes 搭建 安装 EFK日志收集平台
  • 浅谈分布式系统
  • QT 自定义可拖动缩放的无边框窗口,可用于mainmindow, widget
  • 鸿蒙 OS 开发零基础快速入门教程
  • yolo介绍
  • 传输层 II(TCP协议——协议的特点、报文段、连接管理)【★★★★】
  • 质量小议47 - AI写用例
  • etcd 集群搭建与测试指南
  • 写毕业论文用什么软件?分享6款好用的AI论文写作软件网站
  • 【技术解析】wx.request 封装:优化小程序网络请求的最佳实践
  • 9.24 C++ 常成员,运算符重载
  • C#设计模式之访问者模式
  • 一次RPC调用过程是怎么样的?
  • 鸭脖变“刺客”,啃不起了
  • 力扣 —— 删除有序数组中的重复项
  • rmdir :删除空文件夹
  • 网络爬虫Request静态页面数据获取
  • 网页聊天——测试报告——Selenium自动化测试
  • mysql5.7常用操作命令手册
  • 前端组件库Element UI 的使用