一、教材解释:

· 并行是指两个或者多个事件在同一时刻发生,而并发是指两个或者多个事件在同一时间间隔发生

· 并行是在不同实体上的多个事件,并发是在同一实体上的多个事件

二、c语言站长公众号解释:

1、并发

早期计算机的CPU都是单核的,一个CPU在同一时间只能执行一个进程或线程,当系统中有多个进程或线程等待执行时,CPU只能执行完一个再执行下一个。计算机在运行过程中,有很多指令会设计i/o操作,而i/o操作又是相当耗时间的,速度远远低于CPU,这导致CPU经常处于空闲状态,只能等待i/o操作完成后才能继续执行后面的指令。为了提高CPU的利用率,减少等待时间,人们提出了一种CPU并发工作理论:

所谓并发,就是通过一种算法将CPU资源合理地分配给多个任务,当一个任务执行i/o操作时,CPU可以转而执行其他的任务,等待i/o操作完成以后,或者新的任务遇到i/o操作时,CPU在回到原来的任务继续执行。

虽然CPU在同一时刻只能执行一个任务,但是通过将CPU的使用权在恰当的时机分配给不同的任务,使得多个任务在视觉上看起来是一起执行的。CPU的执行速度极快,多任务切换的时间也极短,用户根本感受不到。

操作系统负责将有限的CPU资源分配给不同的任务,但是不同操作系统的分配方式不太一样,常见的有:

· 当检测到正在执行的任务进行i/o操作时,就将CPU资源分配给其他任务

· 将CPU时间平均分配给各个任务,每个任务都可以获得CPU的使用权。在给定的时间内,即使任务没有执行完成,也要将CPU资源分配给其他任务,该任务需要等待下次分配CPU使用权后再继续执行。

将CPU资源合理地分配给多个任务共同使用,有效避免了CPU被某个任务长期霸占的问题,极大地提高了CPU资源利用率。

2、并行

并发是针对单核CPU提出的,而并行是针对多核CPU提出的(多核CPU内部集成了多个计算核心,每个核心相当于一个简单的CPU)。多核CPU的每个核心都可以独立地执行一个任务,而且多个核心之间不会相互干扰。在不同核心上执行的多个任务,是真正地同时运行,这种状态就叫做并行。

双核CPU执行两个任务时,每个核心各自执行一个任务,和单核CPU在两个任务之间不断切换相比,它的执行效率更高。

3、并发+并行

在实际工作场景中,处于运行状态的任务(线程或进程)是非常多的,尤其是电脑和手机,开机就有几十个任务,而CPU往往只有四核、八核、十六核,远低于任务(线程或进程)的数量,这个时候就会同时存在并发和并行两种情况:所有核心都要并行工作且每个核心还要并发工作。

总结:并发针对单核CPU而言,指的是CPU交替执行不同任务的能力;并行真多多核CPU而言,指的是多个核心同时执行多个任务的能力。在多核CPU中,并发和并行一般都会同时存在,他们都是提高CPU处理任务能力的重要手段。

操作系统中并发和并行的区别相关推荐

  1. 操作系统中并发和并行的区别和联系

    多线程中并发和并行有区别吗? 搞不懂并发和并行分别是什么意思? 一文通俗的解释并发和并行的区别和联系. 本人一直以为并发和并行是一个意思,直到偶然从站长公众号上看到了并发和并行的区别一文,因此做个笔记 ...

  2. 操作系统中并发与并行的几个例子

    何谓并行? 何谓并发? 在单处理机系统中,下述并行和并发现象哪些可能发生,哪些不会发生? (1) 进程与进程之间的并行: (2) 进程与进程之间的并发: (3) 处理机与设备之间的并行: (4) 处理 ...

  3. JS 中并发和并行的区别

    JS中 并发(concurrency)和并行(parallelism)区别 1.并发:宏观概念,有两个任务A和B,在一段时间内,通过在A和B两个任务间切换,来完成两个任务,这种情况叫并发 2.并行:微 ...

  4. 并发与并行的区别(超级通俗易懂)

    学习多线程的时候会遇到一个名词:并发.这是属于操作系统中的词汇,需要了解并发和并行的区别,从网上搜集了几种说法帮助理解. 一: 并发是指一个处理器同时处理多个任务. 并行是指多个处理器或者是多核的处理 ...

  5. 转:并发与并行的区别

    转: https://www.jianshu.com/p/b11e251d3dc7 并发:一个处理器同时处理多个任务.(concurrency) 单个cpu逻辑上同时处理多个任务: 并行:多个处理器或 ...

  6. 如何向纯洁的女朋友解释并发与并行的区别?

    原文链接:并发与并行的区别 现在我们都说设计可并行.高并发的程序,而且我们很多时候会在潜意识里觉得自己对并行(Parallelism)和并发(Concurrency)的区别很清楚,但如果要明确的说出二 ...

  7. java并发和并行的区别

    概念: 并发:以交替的方式 利用等待某件事情完成的时间  来做其他事情,轮流执行任务,不一定同时.宏观上同时,微观上依次执行. 并行:在同一时刻,任务同时开始进行,彼此没有依赖关系.多个任务同一时刻同 ...

  8. 多线程并发和并行的区别

    背景  对于java开发从业人员来说,并发编程是绕不开的话题,juc并发包下提供了一系列多线程场景解决方案.  随着jdk1.8的普及,多线程处理问题,除了使用使用线程池(ExecutorServic ...

  9. 并发和并行的区别_多核、多处理器、并发、并行、超线程概念总结

    多核与多处理器 多核( ) 多核处理器就是指单个 CPU 中有多个可执行单元. 如下图所示,单个 CPU 中有两套可执行单元. 多处理器( ) 多处理器系统则是一个拥有多个 CPU 的系统.每个 CP ...

最新文章

  1. mysql下载之后找不见_Win7系统中安装mysql后找不到服务或出现找不到指定文件怎么办?...
  2. html5斐波那契数列,经典的斐波那契数列与arguments.callee
  3. 尝鲜RHEV 3.0——概念篇(附RHEV3.0下载)
  4. 中国稀土永磁材料市场发展态势及产销需求规模预测报告2021版
  5. 前端学习(812):dom导读
  6. java代码修改触发编译_gcc -O0仍然优化了“未使用”的代码 . 是否有一个编译标志来改变它?...
  7. Java 异常种类及处理方法
  8. Bootstrap创建按钮工具栏
  9. 95-190-040-源码-window-Session Window
  10. http协议(十)实体首部字段
  11. iOS---UICollectlionView 的使用
  12. 第2章 数据库系统体系结构
  13. SQL2005 游标学习
  14. android.support.v4.app.Fragment和android.app.Fragment区别
  15. AlphaGo程序出BUG了——第四局观感
  16. 台式计算机usb口不识别鼠标,答疑解惑:USB鼠标无法被电脑识别怎么办
  17. 认同和确定性矩阵(Ralph Stacey's Agreement and Certainty Matrix)-译
  18. iconv()和mb_conver_encoding()字符编码转换函数
  19. 嵌入式应用开发在线图书网址
  20. python索引取值_对pandas的层次索引与取值的新方法详解

热门文章

  1. linux——wait
  2. 风起云涌的中国手机市场,苹果你该提高警惕了!
  3. 小花仙服务器没显示,《小花仙》新手指南——注册登录小花仙
  4. 造成eBay账号关联的因素有哪些
  5. 2021-12-30 超大型word文档打开容易死机(偏方)
  6. 年会直播怎么做?直播方案助你一臂之力
  7. Python for...in...循环
  8. 阿里巴巴数据治理平台建设经验
  9. 【风景园林硕士论文】我国城市中小型河流防洪的景观设计策略(节选)
  10. php声明整型数组长度,php数组的长度如何表示