并发(concurrency)和并行(parallellism)是:

  1. 解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。
  2. 解释二:并行是在不同实体上的多个事件,并发是在同一实体上的多个事件
  3. 解释三:并发是在一台处理器上“同时”处理多个任务,并行在多台处理器上同时处理多个任务。如hadoop分布式集群

所以并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。

各位是如何理解并行和并发的呢?

《并发的艺术》中大概是这样写的,系统中有多个任务同时存在可称之为“并发”,系统内有多个任务同时执行可称之为“并行”;并发是并行的子集。比如在单核CPU系统上,只可能存在并发而不可能存在并行。

所有的并发处理都有排队等候,唤醒,执行至少三个这样的步骤.所以并发肯定是宏观概念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞(一般是通过时间片轮转),所以在宏观上看多个几乎同时到达的请求同时在被处理。如果是同一时刻到达的请求也会根据优先级的不同,而先后进入队列排队等候执行。

并发与并行是两个既相似而又不相同的概念:并发性,又称共行性,是指能处理多个同时性活动的能力;并行是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行,也亦是说并发事件之间不一定要同一时刻发生。

并发的实质是一个物理CPU(也可以多个物理CPU) 在若干道程序之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。

并行性指两个或两个以上事件或活动在同一时刻发生。在多道程序环境下,并行性使多个程序同一时刻可在不同CPU上同时执行。

并发,是在同一个cpu上同时(不是真正的同时,而是看来是同时,因为cpu要在多个程序间切换)运行多个程序。

并行,是每个cpu运行一个程序。

打个比方。并发,就像一个人(cpu)喂2个孩子(程序),轮换着每人喂一口,表面上两个孩子都在吃饭。并行,就是2个人喂2个孩子,两个孩子也同时在吃饭。

并发和并行的区别?一个很容易混淆,被忽略的问题相关推荐

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

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

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

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

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

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

  4. java并发和并行的区别

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

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

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

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

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

  7. 程序与进程的区别,并发与并行的区别,多进程的实现原理

    目录 1. 什么是进程 2. 进程与程序的区别 3. 并发与并行 4. 同步\异步and阻塞\非阻塞(重点) 5. 进程的创建(了解) 6. 进程的终止(了解) 7. 进程的层次结构 8. 进程的状态 ...

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

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

  9. 并发和并行的区别简单介绍

    并发和并行 并发是关于正确有效地控制对共享资源的访问 同时完成多个任务.在开始处理其他任务之前,当前任务不需要完成.并发解决了阻塞发生的问题.当任务无法进一步执行,直到外部环境发生变化时才会继续执行. ...

最新文章

  1. 师生脑信息传递的证据:部分学习还是整体学习?
  2. AI 与区块链:两大热门技术,会碰撞出什么样的火花?
  3. C#调用C++的DLL函数另一则(delegate) z
  4. 【C语言学习】国嵌21__指针基础
  5. H264 流媒体 编码汇总
  6. C/C++编程笔记:经典游戏植物大战僵尸游戏辅助,源码送上
  7. Python 03 基础作业
  8. linux(windows,mac)下安装ta-lib
  9. 遇到了火狐扩展全部丢失的问题
  10. 梯度消失与梯度爆炸---解决方案(二)--杀手锏
  11. Oracle -- rollup函数
  12. 汽车维修企业管理【7】
  13. 关于j2me mmapi的player接口的一些理解.
  14. centos 7搭建直播间
  15. 使用ESP8266通过Blinker平台接入天猫精灵控制电视/空调
  16. idea怎么设置热启动
  17. [附源码]Java计算机毕业设计SSM东北鹿产品售卖网站
  18. 算法分析学习笔记二 蛮力法
  19. branch什么意思中文翻译_日本街头被“玩坏”的中文翻译,你能忍到第几条?
  20. 【北邮人福利】微软office和windows完全免费了

热门文章

  1. Badge分析如何逼死处女座
  2. 基础实验5-2.2 电话聊天狂人(Map的使用+例题)
  3. pd.concat()和pd.merge()
  4. DDR4两根4G组的双通道跟1根8G单通道有什么区别?
  5. Linux下JIRA版本5.0.1的安装.破解.汉化
  6. 人人旗下风车网CEO的创业失败教训总结
  7. 抓包工具Fiddler下载安装
  8. 如何保养笔记本的电池
  9. 3.1 数据报表之Excel操作模块 XlsxWriter
  10. 字符0、数字0和‘\0’的区别