精华内容
下载资源
问答
  • 并发和并行区别秒懂

    万次阅读 多人点赞 2018-06-19 12:04:45
    你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。 你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。(不一定是同时的) 你吃饭吃到...

    你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。

    你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。  (不一定是同时的)

    你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。  

     

    并发的关键是你有处理多个任务的能力,不一定要同时。  

    并行的关键是你有同时处理多个任务的能力。  

     

    所以我认为它们最关键的点就是:是否是『同时』。

    并发是轮流处理多个任务,并行是同时处理多个任务

     

     

    并行的两个重要定律
    Amdahi定律
    Amdahi定律定义了串行系统并行化后的加速比公式。

    加速比定义:加速比 = 优化前系统耗时 / 优化后系统耗时

    加速比越高,说明优化越明显。简单介绍一下Amdahi定律公式的推导。
    优化后耗时T_n=T1(F+1/n(1-F)),其中T1表示优化前耗时,F表示串行比例,(1-F)表示并行比例,下标n就是处理器的个数。
    导入加速比公式,也就是T1/T_n,也就是
    T_n=T1(F+1/n(1-F)),公式只是进行简单介绍。

    从公式可以看出,加速比是和串行比例F成反比的,从公式可以看出增加cpu的个数仅仅是一种提供加速比的方法,增加cpu个数的同时,还可以提供降低串行比例来做,也就是串行比例F越低,加速比也就越高

    Gustafson定律
    Custafson公式也是并行的一个比较重要的公式,现在介绍一下Custafson公式的推导。

    定义一下串行执行时间为a,并行执行时间为b。即单核CPU情况,执行时间为a+b总执行时间为a+nb,n表示CPU个数。

    //定义串行比例
    F=a/(a+b)

    //得到加速比
    s(n)=a+nb/a+b=a/a+b + nb/a+b = F + n*(b-a+a)/a+b = F + n(1-F)

    从公式可以看出,如果串行比例足够小的情况,加速比其实就是约等于处理器个数,也就是说通过加多CPU的个数就能提高加速比。

    两个公式看起来似乎有点矛盾,其实不然,两个公式只是从不同角度分析问题。Amdahi是说在串行比例一定时,通过加CPU的方法是有上限的,通过降低串行比例同时增加cpu个数可以提高加速比。Custafson是说在串行比较趋于很小的情况,从公式可以看出,加cpu就可以提高加速比
    --------------------- 
    并行的两个重要定律摘自原文:https://blog.csdn.net/u014427391/article/details/85019834 

     

    展开全文
  • 并发和并行区别

    2017-11-02 18:37:53
    转载自并发编程网 – ifeve.com本文链接地址: 并发和并行有什么区别?做并发编程之前,必须首先理解什么是并发,什么是并行,什么是并发编程,什么是并行编程。并发(concurrency)和并行(parallellism)是:解释一...

    转载自并发编程网 – ifeve.com本文链接地址: 并发和并行有什么区别?

    做并发编程之前,必须首先理解什么是并发,什么是并行,什么是并发编程,什么是并行编程。

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

    解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。
    解释二:并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。
    解释三:在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如hadoop分布式集群
    所以并发编程的目标是充分的利用处理器的每一个核,以达到最高的处理性能。

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

    展开全文
  • 并发和并行区别

    万次阅读 多人点赞 2018-07-14 09:36:14
    1、并发:指两个或多个事件在同一时间间隔内发生,即交替做不同事的能力,多线程是并发的一种形式。2、并行:指两个或者多个事件在同一时刻发生,即同时做不同事的能力。...

    1、并发(Concurrent):指两个或多个事件在同一时间间隔内发生,即交替做不同事的能力,多线程是并发的一种形式。例如垃圾回收时,用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续运行,而垃圾收集程序运行于另一个CPU上。

    2、并行(Parallel):指两个或者多个事件在同一时刻发生,即同时做不同事的能力。例如垃圾回收时,多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。

    展开全文
  • 纠错--并发和并行区别

    千次阅读 多人点赞 2019-10-24 19:45:30
    并行和并发性是既相似又有区别的两个概念,再开始分析之前,我们先给出并发和并行的概念。 ​ 并行是指两个或多个时间在同一时刻发生。 ​ 并发是指两个或多个事件在同一时间间隔内发生。 ​ 大家看到的图一般...

    并行性和并发性是既相似又有区别的两个概念,再开始分析之前,我们先给出并发和并行的概念。

    并行是指两个或多个事件在同一时刻发生。

    并发是指两个或多个事件在同一时间间隔内发生。

    ​ 大家看到的图一般如下所示:
    原本大家理解的并发

    并行

    上述是博主看到的并发和并行的理解,其实我之前也一直是这么认为的,一直到我写了上一篇博客,从操作系统的发展过程对进程和线程进行了分析,才觉得并发的概念似乎并不是这样的,因此这篇博客是一篇纠错博客,如果理解的有误,还请大家一起进行讨论。首先指出我认为的错误,并发并不是指同一时刻只能有一条指令执行,造成这个困扰的原因是在单核CPU的操作系统中,每一时刻仅能有一道程序执行,故微观上这些程序只能分时的交替执行,此时情况如下图:
    单CPU操作系统下的并发

    在上图中,事件A、B、C、D、E、F、G在单核CPU的操作系统中依次的执行,这也是我们之前理解的并发。但是在多核CPU的操作系统中,这些并发的程序便可被分配到多个处理机上,实现真正意义上的并行(这里可以参考我的另一篇博文),即利用每个处理机来处理一个可并发执行的程序,这样多个程序便可以同时执行,图示如下所示:
    多CPU操作系统中的并发

    在上图中,事件A、B,事件G、F在多核CPU操作系统中可以做到真正的并行执行。因此在多CPU的环境下,并发的程序有可能会转为并行,但是需要多个程序可以同时能抢占到处理机(这部分是处理机调度问题,大家有兴趣可以关注我的博客,后续后讲到)。

    ​因此并发和并行在关系上又有些变化,并发在一定条件下(多CPU操作系统)可以部分事件并行执行。上面这句话是博主自己总结的。

    ​现在我们在对并发和并行的两个概念来做一下解读。对于并行,大家应该没什么不同,而且概念也比较清晰。但是对于并发,概念上讲多个事件在同一时间间隔内发生,但是在这一个事件间隔内,没有约束部分事件不可同一时刻发生,即并行。

    ​博客到这里也就结束了,如果大家有什么疑问,可以评论留言,如果有不同意见,也可以留言讨论。原创不易,并且今天还是1024程序员节,如果对你有帮助,还请留下个赞。

    展开全文
  • 多线程并发和并行区别

    千次阅读 2020-09-13 14:35:34
     那么并行和并发又有什么区别?究竟改如何选择?滥用时又会有什么影响?   这些问题我分以下几篇文章进行详细说明:   1. 多线程并发和并行区别   2. parallelStream()并行滥用的后果   3
  • 通俗理解并发和并行区别

    千次阅读 2016-09-02 13:21:39
    所有的并发处理都有排队等候,唤醒,执行至少三个这样的步骤.所以并发肯定是宏观概念,在微观上他们都是序列被处理的,只不过资源不会... 并发并行是两个既相似而又不相同的概念:并发性,又称共行性,是指能处理多
  • 【操作系统】并发和并行区别

    千次阅读 2019-09-29 13:31:36
    辨析并发和并行区别
  • 并发和并行区别

    千次阅读 2018-10-31 17:12:26
    并发(concurrency)是问题域中的概念-程序需要被设计成能够处理多个同时(或者几乎同时)发生的事件;而并行(parallellism)则是方法域中的概念-通过将问题中的多个部分并行执行,来加速解决问题。 引用Rob Pike...
  • Java-并发和并行区别

    千次阅读 2016-07-22 11:28:37
    并发和并行又有区别并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。在操作系统中,并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是...
  • 并行和并发区别

    千次阅读 多人点赞 2019-05-13 09:40:22
    并行和并发有什么区别并行(parallelism),是同一时刻,两个线程都在执行。 并发(concurrency),是同一时刻,只有一个执行,但是一个时间段内,两个线程都执行了。 并行 并发 【Java面试题与答案...
  • 并发和并行

    千次阅读 2018-08-28 09:39:13
    并行 是针对多处理器维度说的,每个处理器都有独自计算的能力,多个处理器同时计算就是并行 并发 是针对单处理器的维度说的,每个处理器在同时处理多个任务,其实准确的说,并不是同时执行,只是多个任务直接切换的特别...
  • 并发和并行 并发是指两个程序或以上在同一时间段上发生 并行是指两个程序或以上在同一时刻上发生(同时发生) 在操作系统中,安装了多个程序,并发是指在一段时间内宏观上有多个程序同时运行,这在单cpu系统中,每...
  • 程序进程的主要区别:程序是一个静态的指令集合,进程则是正在系统中活动的指令集合。换句话说,运行中的程序就是进程。 进程具有三个重要的性质:独立性、动态性、并发性 独立性:经常在操作系统中独立存在,...
  • 详解并发和并行意义

    万次阅读 多人点赞 2017-12-20 10:28:52
    很多人不是特别明白并发编程和并行编程的区别所在,有很多人很容易搞混淆,觉得二者近似相等,本文将用几个浅显易懂的例子,来说明一下什么是并发和并行。 1、任务与多任务  关于什么是进程,什么是线程,这里不...
  • 【Java面试】我终于理解了并发并行的区别并发并行画图理解总结参考资料 用工作中开发来举个例子吧。 并发 同一时间有两个需求,需求AB分配到了你的手上,而且这两个需求都很急,你为这两个需求分别开了两个分支A...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 236,613
精华内容 94,645
关键字:

并发和并行的区别和联系