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

并行和并发有什么区别?

并行和并发

并行和并发最早其实描述的是 Java 并发编程里面的概念。他们强调的是 CPU 处理任务的能力。简单来说:

  • 并发,就是同一个时刻,CPU 能够处理的任务数量,并且对于应用程序来说,不会出现卡顿现象。
  • 并行,就是同一个时刻,允许多个任务同时执行,在多核 CPU 架构中,同时执行的任务数量是由核心数决定的,

比如在 4 核 4 线程的 CPU 中,只能同时执行 4 个线程。这两个概念看起来类似,但其实描述的纬度是不同的,并发描述的是程序处理能力的视角,并行描述的是 CPU 处理任务方式的视角,一个是宏观层面,一个是微观层面。他们两个又是相辅相成的,CPU 并行执行任务的能力,又能提升程序的并发处理性能。所以多核 CPU 的性能要比单核 CPU 好。当然,如果是单核 CPU,也可以通过时间片切换的方式提升并发能力。

区别

Erlang 之父 Joe Armstrong 用了一张图片解释了并行和并发的区别。并发就是两个队列交替使用一台咖啡机,并行是两个队列同时使用两台咖啡机。

 

总结

并行和并发是 Java 并发编程里面的概念。并行,是指在多核 CPU 架构下,同一时刻同时可以执行多个线程的能力。在单核 CPU 架构中,同一时刻只能运行一个线程。在 4 核 4 线程的 CPU 架构中,同一时刻可以运行 4 个线程,那这 4 个线程就是并行执行的。并发,是指在同一时刻 CPU 能够处理的任务数量,也可以理解成 CPU 的并发能力。在单核 CPU 架构中,操作系统通过 CPU 时间片机制提升 CPU 的并发能力 ,在多核 CPU 架构中,基于任务的并行执行能力以及 CPU 时间片切换的能力来提升 CPU的并发能力。 所以,总的来说,并发是一个宏观概念,它指的是 CPU 能够承载的压力大小, 并行是一个微观概念,它描述 CPU 同时执行多个任务的能力。
http://www.lryc.cn/news/211862.html

相关文章:

  • 第2篇 机器学习基础 —(3)机器学习库之Scikit-Learn
  • 正点原子嵌入式linux驱动开发——Linux SPI驱动
  • 【计算机视觉】相机
  • Spring的条件注解,一篇文章盘得清清楚楚明明白白
  • Oracle (7)Online Redo Log Files
  • 物联网AI MicroPython传感器学习 之 PAJ7620手势识别传感器
  • Affinity Photo 2.2.1 高端专业Mac PS修图软件
  • 微服务-统一网关Gateway
  • 【音视频|wav】wav音频文件格式详解
  • 网络工程综合试题(二)
  • Android JNI/NDK 入门从一到二
  • 吃瓜教程3|决策树
  • springboot动态数据源【非伪数据源】
  • 如何改善设备综合效率(OEE)并提高工厂的生产力
  • 一文接入Android阿里Sophix热更新
  • 【高阶数据结构】并查集和图
  • Git 提交时提示 GPG 签名错误
  • vite+vue3实现 tomcat 的本地部署
  • docker+playwright
  • php框架路由实现
  • 在CentOS 7中手工打造和运行xml文件配置的Servlet,然后使用curl、浏览器、telnet等三种工具各自测试
  • 单例模式.
  • 2023年MathorCup高校数学建模挑战赛大数据挑战赛赛题浅析
  • c++小惊喜——stringstream
  • ubuntu 18.04 编译安装flexpart 10.4(2023年) —— 筑梦之路
  • 深度学习(生成式模型)——DDIM:Denoising Diffusion Implicit Models
  • HashMap的遍历方式 -- 好几次差点记不起来总结了一下
  • PostgreSQL 两表关联更新sql
  • R2R 的一些小tip
  • UML中类之间的六种主要关系