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

多线程2——并发和并行

一、多线程

1. 并发

🧁 并发(Concurrency):单核CPU的"多任务切换大师"

定义:多个任务在同一时间段内交替执行,看起来像是同时进行,但实际上在任意时刻只有一个任务在执行

生活比喻

你一个人在奶茶店工作,先做一杯奶茶(任务A),然后去洗杯子(任务B),再回来看一下奶茶进度(任务A),再处理一下订单(任务C)... 你看起来在同时处理多个任务,但实际上你一次只做一件事,只是切换得非常快,让顾客感觉你"同时"在忙。

2. 并行

🍜 并行(Parallelism):多核CPU的"团队协作"

定义:多个任务真正同时执行,在同一时刻有多个任务在运行。

生活比喻

你和朋友一起在奶茶店工作,你负责做奶茶(任务A),朋友负责洗杯子(任务B),另一个人负责收银(任务C)... 你们同时在做不同的事情,效率大大提高。

核心区别对比表

特性并发 (Concurrency)并行 (Parallelism)
执行方式交替执行,快速切换真正同时执行
硬件需求单核CPU即可需要多核CPU或多处理器
本质逻辑上的同时物理上的同时
效率提升提高响应性,充分利用等待时间缩短总执行时间
生活例子你一个人在厨房忙前忙后你和朋友一起在厨房同时工作

并发 ≠ 并行!这是一个常见的误解。

"并发是逻辑上的同时发生,而并行是物理上的同时发生。并发可以跑在一个处理器上通过时间片进行切换,而并行需要两个或两个以上的线程跑在不同的处理器上。"

为什么我们要用并发和并行?

并发的适用场景

  • I/O密集型任务:如网络请求、文件读写、数据库查询(大部分时间在等待I/O,CPU空闲)
  • 用户界面响应:保持界面流畅,避免卡顿(如后台下载时,前台仍可操作)
  • Web服务器:处理大量HTTP请求,提高吞吐量

并行的适用场景

  • 计算密集型任务:如图像处理、科学计算、大数据分析
  • 需要快速完成的大型任务:如视频渲染、天气模拟

http://www.cnnetsun.cn/news/158357.html

相关文章:

  • Langchain-Chatchat如何实现文档访问统计?了解知识使用情况
  • Langchain-Chatchat与Argo CD持续交付集成:自动化部署流水线
  • Langchain-Chatchat与Consul服务发现集成:动态节点管理
  • Langchain-Chatchat与Airflow工作流集成:复杂ETL流程调度
  • 验证码实现
  • 2.1 CPU脚本性能优化简介
  • Langchain-Chatchat问答系统压测报告:万级QPS承载能力验证
  • Langchain-Chatchat支持自定义元数据字段:扩展文档属性信息
  • 双侧独立电驱动车辆转向控制:Matlab/Simulink建模之旅
  • 500kW三相光伏并网逆变器仿真模型探索
  • 基于Optislang的电机多目标优化:以电机气息磁通密度空间某一阶次为优化目标教程
  • 彼得林奇对公司自由现金流转换率的分析
  • 通达信止损价位
  • Langchain-Chatchat与Elasticsearch集成:增强全文检索能力
  • 历年中国海洋大学计算机考研复试上机真题
  • Langchain-Chatchat与OpenAI对比:为何本地化部署更受企业青睐
  • 用 SAT 运行时跟踪自动生成 ABAP 的 UML 时序图:拦截标准生成器,输出 PlantUML,让文档从痛苦变成顺手
  • 什么是护网(HVV)?参加护网需要掌握什么技术?
  • 通过微调通用视觉或时序大模型提升小样本预测能力,或利用生成模型(如GAN、扩散模型)进行高质量数据增强与情景模拟
  • Rust嵌入式开发终极指南:用cross实现DMA驱动的零配置跨编译
  • Carnac:让你的键盘操作惊艳全场!3大核心功能深度解析
  • 5分钟搞定FastGPT上下文管理:让AI对话像真人一样连贯自然
  • Java开发者转型AI应用开发工程师:零门槛入门+框架选型+项目实践
  • 实战分享:如何用FunASR构建游戏语音交互系统
  • iperf3网络性能测试终极指南:Windows与Android双平台完整教程
  • Twisted WebSocket开发指南:构建高性能实时应用
  • 5大实用技巧:轻松掌握Chipsbank APTool V7200量产工具
  • DragonflyDB性能革命:如何突破Redis传统架构的性能瓶颈
  • HTML 与 CSS 基础入门笔记
  • Langchain-Chatchat在物业管理中的应用:业主手册智能咨询服务