一、顺序和并发是指多个任务能否同时开始

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)是什么 区别相关推荐

  1. 多线程(单核cpu宏观上并行,微观上串行)

    多线程(单核cpu宏观上并行,微观上串行) 1. 线程状态 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oeQZgwRP-1603117044712)(C:\User ...

  2. 并行与串行传输,串行高速传输

    在高速状态下,并行口的几根数据线之间存在串扰,而并行口需要信号同时发送同时接收,任何一根数据线的延迟都会引起问题.而串行只有一根数据线,不存在信号线之间的串扰,而且串行还可以采用低压差分信号,可以大大 ...

  3. SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍(转)

    SPI.I2C.UART三种串行总线协议的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS) UART( ...

  4. 三种串行总线协议的区别(SPI、I2C和UART)

    SPI.I2C跟UART三种串行总线协议的区别: (如果想了解SPI和I2C更多详细内容,可看 SPI总线(一):基本原理篇, SPI总线(二):驱动分析篇,SPI总线(三):驱动实例,i2c总线(基 ...

  5. 并发事务正确性的准则 可串行化_从0到1理解数据库事务(上):并发问题与隔离级别...

    最近准备写一篇关于Spanner事务的分享,所以先分享一些基础知识,涉及ACID.隔离级别.MVCC.锁,由于太长,只好拆分成上下两篇: 上:并发问题与隔离级别 主要讲事务所要解决的问题.思路,先理解 ...

  6. 串行、并行、并发,别再傻傻分不清了!

    开足码力,码动人生,微信搜索[ 程序员大帝 ],关注这个一言不合就开车的的代码界老司机 本文 GitHub上已经收录 https://github.com/BeKingCoding/JavaKing ...

  7. 并发、并行、同步、异步、进程,线程、串行、并行?一文弄懂八大概念

    并发.并行.同步.异步.进程,线程.串行.并行?一文弄懂八大概念 参考博文:并发.并行.串行.同步.异步的区别? java多线程详解(并发,并行,同步) 文章目录 并发.并行.同步.异步.进程,线程. ...

  8. 入门系列:基础认知——串行、并发、并行

    说明:   本文章旨在总结备份.方便以后查询,由于是个人总结,如有不对,欢迎指正:另外,内容大部分来自网络.书籍.和各类手册,如若侵权请告知,马上删帖致歉.   QQ 群 号:513683159 [相 ...

  9. java sync和async区别_GCD中串行、并行与async、sync的区别

    * author:conowen@大钟 * E-mail:conowen@hotmail.com 队列由一个或多个任务组成,当这些任务要开始执行时,系统会分别把他们分配到某个线程上去执行. 串行队列. ...

  10. 典型的计算机串行和并行总线,串行总线和并行总线的区别

    描述 并行通信传输中有多个数据位,同时在两个设备之间传输.发送设备将这些数据位通过 对应的数据线传送给接收设备,还可附加一位数据校验位.接收设备可同时接收到这些数据,不需要做任何变换就可直接使用.并行 ...

最新文章

  1. DedeCMS(织梦)安全设置经验分享
  2. 倒序查询_mysql大表分页查询翻页优化方案
  3. 并发工具类(一)等待多线程完成的CountDownLatch
  4. Java核心类库篇3——util
  5. Httpclient处理摘要认证
  6. 计算机视觉的监控系统研究现状,基于计算机视觉的监控系统的研究
  7. C++11 之for 新解
  8. 如何使用计算机打勾,如何用电脑在方框里面打勾
  9. linux mkv转mp4,Linux DVD 转 MP4 – HandBrake – Copy a DVD to MP4 or MKV file
  10. Safari 安装 Tampermonkey(油猴)插件
  11. 黑马程序员2022新版python教程补充(P61)
  12. linux内存高但是top进程不高,在Linux中通过Top运行进程查找最高内存和CPU使用率...
  13. Linu笔记-管线命令pipe
  14. [INFO1110课件讲解 一] USYD悉尼大学INFO1110 ED lessons Week1 课件 作业 assignment讲解
  15. abap后台作业清理
  16. 梯度下降及具体计算方式
  17. OpenBox:高效通用的黑盒优化系统
  18. Python学习笔记(四)----Pywin32+Pyinstaller制作windows软件
  19. C语言/C++基础之绘制图钉画(附源码)
  20. Datax从入门到精通03--Kerberos认证问题处理

热门文章

  1. How to install and configure vsftpd
  2. DB2创建数据库示例
  3. 三次握手与accept()函数
  4. Can I Delete Administrative Shares (e.g. C$) in Windows?
  5. linux下运行jar
  6. 2000条你应知的WPF小姿势 基础篇57-62 依赖属性进阶
  7. 架构-LAMP特级学习(网站加速解决方案)
  8. 亲测VS2010纯静态编译QT4.8.2,实现VS2010编译调试Qt程序
  9. editplus3编辑器颜色修改
  10. 思科bfd静态路由切换_配置静态路由与BFD联动