精华内容
下载资源
问答
  • 摘要:并发并行是两个既相似而又不相同的概念并发性,又称共行性,是指能处理多个同时性活动的能力;并行是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行,也亦是说并发事件之间不一定要同一...

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

      并行介绍

      并行在操作系统中是指,一组程序按独立异步的速度执行,不等于时间上的重叠(同一个时刻发生)。

      并发介绍

      并发是指:在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行)。

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

      操作系统并发程序执行的特点:

      并发环境下,由于程序的封闭性被打破,出现了新的特点: ①程序与计算不再一一对应,一个程序副本可以有多个计算

      ②并发程序之间有相互制约关系,直接制约体现为一个程序需要另一个程序的计算结果,间接制约体现为多个程序竞争某一资源,如处理机、缓冲区等。

      ③并发程序在执行中是走走停停,断续推进的

      并发和并行的作用

      通过并发和并行能够使得应用程序可以充分利用多核以及GPU的计算能力,从而提高应用程序的性能,比如在以下几个方面中:

      1.使用异步I/O操作可以提高应用程序的响应性。大多数的GUI应用程序都是用单个线程来控制所有UI界面的更新。UI线程不应该被占用过长时间,不然UI界面就会失去对用户的响应。

      2.跨多线程的并行工作可以更好的利用系统的资源。具有多CPU和GPU的现代计算机,通过并行可以指数级的提高CPU计算受限的应用程序的性能。

      3.同时执行多个I/O操作(如同时从多个网站上获取信息)可以提高总体的吞吐量(throughput),等待I/O相应的操作可以用来发起新的操作,或者是处理操作返回的结果。

      并行和并发区别

      区别一:

      并发是指一个处理器同时处理多个任务。并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。

      来个比喻:并发是一个人同时吃三个馒头,而并行是三个人同时吃三个馒头。

      区别二:

      并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。所以无论从微观还是从宏观来看,二者都是一起执行的。

      并行和并发哪个好?并行和并发的概念和区别

      并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。这就好像两个人用同一把铁锨,轮流挖坑,一小时后,两个人各挖一个小一点的坑,要想挖两个大一点得坑,一定会用两个小时。

      并行和并发哪个好?并行和并发的概念和区别

      并行在多处理器系统中存在,而并发可以在单处理器和多处理器系统中都存在,并发能够在单处理器系统中存在是因为并发是并行的假象,并行要求程序能够同时执行多个操作,而并发只是要求程序假装同时执行多个操作(每个小时间片执行一个操作,多个操作快速切换执行)。

      区别三:

      当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状态。这种方式我们称之为并发(Concurrent)。

      当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。

      并行和并发哪个好?并行和并发的概念和区别

      总结

      总得来说并行与并发各有其特点,要说它们两者哪个更好,则因情况而定。

    展开全文
  • 并发和并行概念

    千次阅读 2020-05-12 22:07:28
    2.并发和并行区别: 所有的并发处理都有排队等候,唤醒执行这三个步骤,所以并发是宏观的观念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞(一般是通过时间片轮转),所以在宏观上多个...

    1.CPU的发展趋势:

         核心数目依旧会越来越多,根据摩尔定律,由于单个核心性能提升有着严重的瓶颈问题,普通的PC桌面在2018年可能回到24核心。

    2.并发和并行的区别:

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

         并发与并行是两个既相似但是却不相同的概念:

             并发性:又称共行性,是指处理多个同时性活动的能力,。

             并行:指同时发生两个并发事件,具有并发的含义。并发不一定并行,也可以说并发事件之间不一定要同一时刻发生。 

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

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

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

         并行是每一个CPU运行一个程序。

        并发是指一个处理器同时处理多个任务。 
        并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。 
        并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。 

         打个比方:并发就像一个人(CPU)喂两个小孩(程序)吃饭,表面上是两个小孩在吃饭,实际是一个人在喂。

                       并行就是两个人喂两个小孩子吃饭。 

    3.并发、并行和多线程的关系:

         并行需要两个或两个以上的线程跑在不同的处理器上,并发可以跑在一个处理器上通过时间片进行切换。

               

     

     

     

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

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

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

     

    并发当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)。
    并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。
    区别:并发和并行是即相似又有区别的两个概念,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可以同时执行。
    展开全文
  • 并发和并行及多线程基本概念

    千次阅读 2019-04-11 14:54:55
    并发 并行 同步 异步 多线程

    并发(Concurrent)

    在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。

    并发,本质上是一个物理CPU(也可以是多个)在若干个程序(或进程)之间多路复用,并发性是对有限物理资源强制为多用户共享,以提高效率;

    并行(Parallel)

    指两个或多个事件(线程)在同一时刻发生,在不同的CPU资源上,同时执行

    在操作系统中,一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。

    所以,并行不存在竞争、等待等概念;

    并发和并行

    并行需要两个或两个以上的线程跑在不同的处理器上,并发可以跑在一个处理器上通过时间片进行切换。

    在单CPU系统中,系统调度在某一时刻只能让一个线程运行,虽然这种调试机制有多种形式(大多数是时间片轮巡为主),但无论如何,要通过不断切换需要运行的线程让其运行的方式就叫并发(concurrent)。而在多CPU系统中,可以让两个以上的线程同时运行,这种可以同时让两个以上线程同时运行的方式叫做并行(parallel)。

    不论是并发还是并行,都能提高程序对CPU资源的利用率;

    一个形象的描述,咖啡机模型:
    并行&并发

    二、异步与多线程
    1)基本概念
    1. 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥
    2. 互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。
    3. 同步:进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。进一步的说明:就是前一个进程的输出作为后一个进程的输入,当第一个进程没有输出时第二个进程必须等待。具有同步关系的一组并发进程相互发送的信息称为消息或事件。
    其中并发又有伪并发和真并发,伪并发是指单核处理器的并发,真并发是指多核处理器的并发。
    4. 并行:在单处理器中多道程序设计系统中,进程被交替执行,表现出一种并发的外部特种;在多处理器系统中,进程不仅可以交替执行,而且可以重叠执行。在多处理器上的程序才可实现并行处理。从而可知,并行是针对多处理器而言的。并行是同时发生的多个并发事件,具有并发的含义,但并发不一定并行,也亦是说并发事件之间不一定要同一时刻发生。
    5. 多线程:多线程是程序设计的逻辑层概念,它是进程中并发运行的一段代码。多线程可以实现线程间的切换执行。
    6. 异步:异步和同步是相对的,同步就是顺序执行,执行完一个再执行下一个,需要等待、协调运行。异步就是彼此独立,在等待某事件的过程中继续做自己的事,不需要等待这一事件完成后再工作。线程就是实现异步的一个方式。异步是让调用方法的主线程不需要同步等待另一线程的完成,从而可以让主线程干其它的事情。

    异步和多线程并不是一个同等关系,异步是最终目的,多线程只是我们实现异步的一种手段。异步是当一个调用请求发送给被调用者,而调用者不用等待其结果的返回而可以做其它的事情。实现异步可以采用多线程技术或则交给另外的进程来处理。

    异步和同步的区别, 在IO等待的时候,同步不会切走,浪费了时间。

    多线程的好处,比较容易的实现了 异步切换的思想, 因为异步的程序很难写的。多线程本身程还是以同步完成,但是应该说比效率是比不上异步的。
    而且多线很容易写, 相对效率也高。

    2)深层次理解

    多线程和异步操作的异同

    多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作是等同的概念。但是,多线程和异步操作还是有一些区别的。而这些区别造成了使用多线程和异步操作的时机的区别。

    异步操作的本质

    所有的程序最终都会由计算机硬件来执行,所以为了更好的理解异步操作的本质,我们有必要了解一下它的硬件基础。 熟悉电脑硬件的朋友肯定对DMA这个词不陌生,硬盘、光驱的技术规格中都有明确DMA的模式指标,其实网卡、声卡、显卡也是有DMA功能的。DMA就是直接内存访问的意思,也就是说,拥有DMA功能的硬件在和内存进行数据交换的时候可以不消耗CPU资源。只要CPU在发起数据传输时发送一个指令,硬件就开始自己和内存交换数据,在传输完成之后硬件会触发一个中断来通知操作完成。这些无须消耗CPU时间的I/O操作正是异步操作的硬件基础。所以即使在DOS这样的单进程(而且无线程概念)系统中也同样可以发起异步的DMA操作。

    线程的本质

    线程不是一个计算机硬件的功能,而是操作系统提供的一种逻辑功能,线程本质上是进程中一段并发运行的代码,所以线程需要操作系统投入CPU资源来运行和调度。

    异步操作的优缺点

    因为异步操作无须额外的线程负担,并且使用回调的方式进行处理,在设计良好的情况下,处理函数可以不必使用共享变量(即使无法完全不用,最起码可以减少共享变量的数量),减少了死锁的可能。当然异步操作也并非完美无暇。编写异步操作的复杂程度较高,程序主要使用回调方式进行处理,与普通人的思维方式有些初入,而且难以调试。

    多线程的优缺点
      多线程的优点很明显,线程中的处理程序依然是顺序执行,符合普通人的思维习惯,所以编程简单。但是多线程的缺点也同样明显,线程的使用(滥用)会给系统带来上下文切换的额外负担。并且线程间的共享变量可能造成死锁的出现。

    适用范围

    在了解了线程与异步操作各自的优缺点之后,我们可以来探讨一下线程和异步的合理用途。我认为:当需要执行I/O操作时,使用异步操作比使用线程+同步I/O操作更合适。I/O操作不仅包括了直接的文件、网络的读写,还包括数据库操作、Web Service、HttpRequest以及.Net Remoting等跨进程的调用。
      而线程的适用范围则是那种需要长时间CPU运算的场合,例如耗时较长的图形处理和算法执行。但是往往由于使用线程编程的简单和符合习惯,所以很多朋友往往会使用线程来执行耗时较长的I/O操作。这样在只有少数几个并发操作的时候还无伤大雅,如果需要处理大量的并发操作时就不合适了。

    展开全文
  • JS中 并发(concurrency)和并行(parallelism)区别 1.并发:宏观概念,有两个任务AB,在一段时间内,通过在AB两个任务间切换,来完成两个任务,这种情况较并发 2.并行:微观概念,假设CPU有两个核心,那么我们...

    JS中 并发(concurrency)和并行(parallelism)区别

    1.并发:宏观概念,有两个任务A和B,在一段时间内,通过在A和B两个任务间切换,来完成两个任务,这种情况叫并发
    2.并行:微观概念,假设CPU有两个核心,那么我们就可以同时完成A,B两个任务。即:同时完成多个任务的情况可以称为并行。

    展开全文
  • 以下概念摘自《疯狂java讲义》《深入理解计算机系统》: 程序进程(Process):  几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是指一个程序。程序进程的主要区别:程序是一个静态的指令集合,...
  • 面试必考的:并发和并行有什么区别

    千次阅读 多人点赞 2019-04-30 10:02:55
    本文公众号来源:漫话编程 作者:漫话编程并发和并行不知道你们在面试的时候有没有被问过,反正我之前是被问过的。在学习多线程的时候我也曾经解释过并行和并发区别:入门Java...
  • 通俗理解并发和并行区别

    万次阅读 2018-09-24 10:44:29
    所以并发肯定是宏观概念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞(一般是通过时间片轮转),所以在宏观上看多个几乎同时到达的请求同时在被处理。如果是同一时刻到达的请求也会根据优先级的...
  • 并发和并行区别

    千次阅读 多人点赞 2018-10-31 17:12:26
    并发(concurrency)是问题域中的概念-程序需要被设计成能够处理多个同时(或者几乎同时)发生的事件;而并行(parallellism)则是方法域中的概念-通过将问题中的多个部分并行执行,来加速解决问题。 引用Rob Pike...
  • 首先我们要先理解什么是并发和并行: 并发概念—在一定时间内系统能够处理的任务数 并行概念是----指应用能够同时执行不同的任务 结合例子来说明: 并发:早上排队去在一个窗口买早餐所有人按照先后顺序去买早餐 ...
  • 【操作系统】并发和并行区别

    千次阅读 2019-09-29 13:31:36
    辨析并发和并行区别
  • 但在这当中,发现一些概念区分起来很难,比如并发和并行,同步异步,阻塞非阻塞,但是这些概念却很重要。因此在此把它总结下来。并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间...
  • 并发和并行区别

    2020-09-18 15:25:20
    先举例子来理解这2个概念区别。 老师让两个同学去办公室谈话。如果这两同学(进程)是并列跨过办公室门(CPU)的,那么就是并行。如果同学A先进同学B后进入(或者先B后A),或者两人并列同时进入,但是在办公室外的路人...
  • 并行和并发,同步异步的区别

    千次阅读 2018-12-08 01:17:17
    老是忘记并发和并行,同步异步之间的区别,今天写篇博客,加深印象。 并发 & 并行  并发:当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间...
  • 并发和并行有什么区别

    千次阅读 2018-03-13 22:20:23
    1.并行是在同一时刻执行多个事件,并发是在同一事件段内执行多个事件2.并行发生在不同的实体上,并发发生在同一个实体上。并发编程可以充分的利用cpu的,达到最高的处理性能那为什么并发就能充分利用cpu的执行能力...
  • 并发和并行,异步与多线程区别

    万次阅读 多人点赞 2018-05-12 08:48:03
    1、并发和并行区别可由上图形象指出两者的区别:1)定义:并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序...
  • 并发和并行性的区别

    万次阅读 多人点赞 2014-07-04 15:56:29
    并发和并行性的区别 所有的并发处理都有排队等候,唤醒,执行至少三个这样的步骤.所以并发肯定是宏观概念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞(一般是通过时间片轮转),所以在...
  • 并发并行区别

    千次阅读 2016-02-12 01:32:45
    """ https://github.com/forhappy/Cplusplus-Concurrency-In-Practice/blob/master/zh/chapter1-Introduction/1.1%20What%20is%20concurrency.md 像我这么傲娇的人 如果是转帖不在开头附上原文...并发(Con
  • 串行、并行和并发区别

    千次阅读 2020-06-15 13:32:43
    原来对这个一直不是区别的开,看了各位大佬的论坛,总结一下自己的理解吧。 1、串行就相当于一个大任务拆解成很多小任务,但是只能一个一个按顺序完成(前一个小任务没完成不能操作下一个)。 2、并行就相当于这些小...
  • 在看g1gc文章的时候,把concurrent and parallel phases翻译成并发和并行阶段,感觉这2个词不是一个意思吗?为啥他原始文档要强调这2个词呢。深究一下,果然不是一个意思。 总体概念: 在单CPU系统中,系统调度在某...
  • [并发概念] 串行、并行并发

    千次阅读 2019-12-31 07:29:43
    并发和并行 概念非常相似,难以区分。分别体现在两个方面。 并发(Concurrency),体现在(1)单个处理器;(2)逻辑上同步运行。 并行(Parallelism),体现在(1)多处理器,多核心;(2)物理上同步运行。 并行的...
  • 多线程 ---并发并行概念总结

    万次阅读 多人点赞 2016-06-30 15:17:39
    软件开发,网站开发过程中经常有并发并行这样的多线程处理与应用。因此,有必要对其进行了解与掌握。多线程: 在了解线程之前,要先知道进程这个概念。进程是一个具有独立功能的程序关于某个数据集合的一次运行...
  • 纠错--并发和并行区别

    千次阅读 多人点赞 2019-10-24 19:45:30
    并行和并发性是既相似又有区别的两个概念,再开始分析之前,我们先给出并发和并行概念。 ​ 并行是指两个或多个时间在同一时刻发生。 ​ 并发是指两个或多个事件在同一时间间隔内发生。 ​ 大家看到的图一般...
  • 近期发现部分同学对并发并行和同步三个概念的理解有混淆,所以做一下简单的名词解释,并用一个(写的很烂)的故事来帮助大家理解 :) 名词解释 并发 (Concurrency):并发是一种机制,即指“同时有多个请求被...
  • 非并行非并发 ...此时不难发现,并行概念可以归纳为并发概念的一个子集并发的关键在于你有处理多个任务的能力,不一定要同时,只要能交替执行。比如单CPU核心下执行多线程并非是同时执行多个任务,如果你开

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 106,032
精华内容 42,412
关键字:

并发和并行概念及区别