并发(concurrent)、并行(parallel)、顺序(sequential)、串行(serial)是什么 区别
一、顺序和并发是指多个任务能否同时开始
1. 顺序(sequential)
顺序:上一个开始执行的任务完成后,当前任务才能开始执行。
2. 并发(concurrent)
并发:无论上一个开始执行的任务是否完成,当前任务都可以开始执行
A B 顺序执行的话,A 一定会比 B 先完成,而并发执行则不一定。
二、串行和并行是指任务多个任务能否同时执行
1. 串行(serial)
串行:有一个任务执行单元,从物理上就只能一个任务、一个任务地执行
2. 并行(parallel)
并行:有多个任务执行单元,从物理上就可以多个任务一起执行
在任意时间点上,串行执行时必然只有一个任务在执行,而并行则不一定。
三、并发(concurrent)和并行(parallel)的关系
rlang 之父 Joe Armstrong 用一张5岁小孩都能看懂的图解释了并发与并行的区别
并发的关键是你有处理多个任务的能力,不一定要同时。关注的是任务的抽象调度。
并行的关键是你有同时处理多个任务的能力。关注的是任务的实际执行。
如并行一定会允许并发。
并发和并行都可以是很多个线程,就看这些线程能不能同时被(多个)cpu执行,如果可以就说明是并行,而并发是多个线程被(一个)cpu 轮流切换着执行。
所以我认为它们最关键的点就是:是否是『同时』。
并行必须多核CPU才能办到,并发单核就可以做到(并发宏观并行,微观串行)。
并行是并发的子集,并发不一定并行,并行一定属于并发。
多线程在多核上同时运行的是并行.
单核 CPU 多任务:
并发(不必等上一个任务完成才开始下一个任务)、串行(只有一个实际执行任务的 CPU 核)
多线程:
并发、串行(所有线程都在同一个核上执行);
并发、并行(不同线程在不同的核上执行)
并发线程的执行顺序由cpu线程调度器决定,每个线程分一定时间片,执行一定时间后由线程调度器切换线程执行。
就是cpu计算太快,有时候请求内存或网络请求需要等待,这个时间cpu就可以切换别的线程进行计算,提高效率。
https://www.zhihu.com/question/33515481
并发(concurrent)、并行(parallel)、顺序(sequential)、串行(serial)是什么 区别相关推荐
- 多线程(单核cpu宏观上并行,微观上串行)
多线程(单核cpu宏观上并行,微观上串行) 1. 线程状态 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oeQZgwRP-1603117044712)(C:\User ...
- 并行与串行传输,串行高速传输
在高速状态下,并行口的几根数据线之间存在串扰,而并行口需要信号同时发送同时接收,任何一根数据线的延迟都会引起问题.而串行只有一根数据线,不存在信号线之间的串扰,而且串行还可以采用低压差分信号,可以大大 ...
- SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)
SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...
- 三种串行总线协议的区别(SPI、I2C和UART)
SPI.I2C跟UART三种串行总线协议的区别: (如果想了解SPI和I2C更多详细内容,可看 SPI总线(一):基本原理篇, SPI总线(二):驱动分析篇,SPI总线(三):驱动实例,i2c总线(基 ...
- 并发事务正确性的准则 可串行化_从0到1理解数据库事务(上):并发问题与隔离级别...
最近准备写一篇关于Spanner事务的分享,所以先分享一些基础知识,涉及ACID.隔离级别.MVCC.锁,由于太长,只好拆分成上下两篇: 上:并发问题与隔离级别 主要讲事务所要解决的问题.思路,先理解 ...
- 串行、并行、并发,别再傻傻分不清了!
开足码力,码动人生,微信搜索[ 程序员大帝 ],关注这个一言不合就开车的的代码界老司机 本文 GitHub上已经收录 https://github.com/BeKingCoding/JavaKing ...
- 并发、并行、同步、异步、进程,线程、串行、并行?一文弄懂八大概念
并发.并行.同步.异步.进程,线程.串行.并行?一文弄懂八大概念 参考博文:并发.并行.串行.同步.异步的区别? java多线程详解(并发,并行,同步) 文章目录 并发.并行.同步.异步.进程,线程. ...
- 入门系列:基础认知——串行、并发、并行
说明: 本文章旨在总结备份.方便以后查询,由于是个人总结,如有不对,欢迎指正:另外,内容大部分来自网络.书籍.和各类手册,如若侵权请告知,马上删帖致歉. QQ 群 号:513683159 [相 ...
- java sync和async区别_GCD中串行、并行与async、sync的区别
* author:conowen@大钟 * E-mail:conowen@hotmail.com 队列由一个或多个任务组成,当这些任务要开始执行时,系统会分别把他们分配到某个线程上去执行. 串行队列. ...
- 典型的计算机串行和并行总线,串行总线和并行总线的区别
描述 并行通信传输中有多个数据位,同时在两个设备之间传输.发送设备将这些数据位通过 对应的数据线传送给接收设备,还可附加一位数据校验位.接收设备可同时接收到这些数据,不需要做任何变换就可直接使用.并行 ...
最新文章
- DedeCMS(织梦)安全设置经验分享
- 倒序查询_mysql大表分页查询翻页优化方案
- 并发工具类(一)等待多线程完成的CountDownLatch
- Java核心类库篇3——util
- Httpclient处理摘要认证
- 计算机视觉的监控系统研究现状,基于计算机视觉的监控系统的研究
- C++11 之for 新解
- 如何使用计算机打勾,如何用电脑在方框里面打勾
- linux mkv转mp4,Linux DVD 转 MP4 – HandBrake – Copy a DVD to MP4 or MKV file
- Safari 安装 Tampermonkey(油猴)插件
- 黑马程序员2022新版python教程补充(P61)
- linux内存高但是top进程不高,在Linux中通过Top运行进程查找最高内存和CPU使用率...
- Linu笔记-管线命令pipe
- [INFO1110课件讲解 一] USYD悉尼大学INFO1110 ED lessons Week1 课件 作业 assignment讲解
- abap后台作业清理
- 梯度下降及具体计算方式
- OpenBox:高效通用的黑盒优化系统
- Python学习笔记(四)----Pywin32+Pyinstaller制作windows软件
- C语言/C++基础之绘制图钉画(附源码)
- Datax从入门到精通03--Kerberos认证问题处理
热门文章
- How to install and configure vsftpd
- DB2创建数据库示例
- 三次握手与accept()函数
- Can I Delete Administrative Shares (e.g. C$) in Windows?
- linux下运行jar
- 2000条你应知的WPF小姿势 基础篇57-62 依赖属性进阶
- 架构-LAMP特级学习(网站加速解决方案)
- 亲测VS2010纯静态编译QT4.8.2,实现VS2010编译调试Qt程序
- editplus3编辑器颜色修改
- 思科bfd静态路由切换_配置静态路由与BFD联动