精华内容
下载资源
问答
  • 并发和并行的概念

    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)。
    区别:并发和并行是即相似又有区别的两个概念,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可以同时执行。
    展开全文
  • 并发和并行既有相似又有区别(微观时间角度) 并发:指两个或者多个事件在同一时间段内发生并行:指两个或多个事件在同一时间点发生 在操作系统中,当有多个程序运行时,并发性是指在一段时间内宏观上有多个程序...

    并发和并行既有相似又有区别(微观时间角度)

    并发:指两个或者多个事件在同一时间段内发生
    并行:指两个或多个事件在同一时间点发生

     

    在操作系统中,当有多个程序运行时,并发性是指在一段时间内宏观上有多个程序在同时运行

    (宏观:从用户体验的角度即边玩游戏边听歌),但在单核系统中,每一时刻却仅有一个程序执行,

    这就是CPU中时间片的概念,可以想象CPU把运行的一秒钟分成十份,计算机中所有程序,

    运行中的程序交替的执行在每一个十分之秒中。当代的计算机都有多个核心每个核心可以单独的去执行程序

    所以当计算机CUP有多个核心时并行性的概念在微观上即可视为存在的现象。

     

    转载于:https://www.cnblogs.com/voryla/p/11066873.html

    展开全文
  • 就当前计算机的技术来讲,目前大部分的语言能够满足并发执行,但是现在的多核cpu或者多cpu下开始产生并行的概念。总体概念: 在单CPU系统中,系统调度在某一时刻只能让一个线程运行,虽然这种调试机制有多种形式...

    转自 http://wwty.iteye.com/blog/617384
    就当前计算机的技术来讲,目前大部分的语言能够满足并发执行,但是现在的多核cpu或者多cpu下开始产生并行的概念。

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

    并发编程:
    “并发”在微观上不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行,从宏观外来看,好像是这些进程都在执行。
    使用多个线程可以帮助我们在单个处理系统中实现更高的吞吐量,如果一个程序是单线程的,这个处理器在等待一个同步I/O操作完成的时候,他仍然是空闲的。在多线程系统中,当一个线程等待I/O的同时,其他的线程也可以执行。
    这个有点像一个厨师做麻辣鸡丝的时候同时做香辣土豆条,总比先做麻辣鸡丝再做香辣土豆条效率要高,因为这样可以交替着做。
    上面这总情况是在单处理器(厨师)的系统处理任务(做菜)的情况,厨师只有一个,他在一个微观的时间点上,他只能做一件事情,这种情况就是虽然是多个线程,但是都是在同一个处理器上运行。
    但是多线程并不能一定能提高程序的执行效率,比如,你的项目经理给你分配了10个bug让你修改,你应该会一个一个去改,一般的人不会每个bug去改5分钟,知道改完为止,如果这样的话,上次改到什么地方都记不得了。在这总情况下并发并没有提高程序的执行效率,反而因为过多的上下文切换引入了一些额外的开销。
    因此在单cpu下只能实现程序的并发,但是无法实现程序的并行。

    现在cpu到了多核的时代,那么就出现了新的概念:并行。
    并行是真正的细粒度上的同时进行;既同一时间点上同时发生着多个并发;更加确切并且简单的来讲:就是每个cpu上运行一个程序,以达到同一时间点上每个cpu上运行一个程序。

    总结,计算机的计算原理是顺序执行的;既一台计算机同一时间点上只能完成一个运算;既然突破不了这个理论基础,那么就在其基础上去发展去:为一台计算机内置多个cpu,这样就可以达到真正意义上的并行。

    就目前来讲,硬件上已经到来了多cpu的时代,软件技术上已经开始跟进并行,比如java已经开始在新的虚拟机上加入并行。但是就当前来讲,并发编程还是主流的。那么什么情况下去使用并发编程呢?

    比如,你有一个计算,包括cpu的计算,网络的传输,数据库的访问,io的操作,如果不采用并发,而是单线程执行,那么cpu计算结束,程序还需要等待接下来步骤的彻底完成,才算一次执行完毕。如果在执行的过程中,又有新的访问到来,那么就需要等待上一次的执行彻底完成,才能开始本次的访问。这样从很大程度上浪费了cpu的资源;如果采用并发编程,既线性编程,那么上面的过程就得这样描述了:一次请求完成cpu计算之后,开始等待剩余步骤的执行;而下一次的请求也可以先完成cpu的计算,进入剩余步骤状态;这样从很大程度上提高了程序的执行效率,也提高了cpu的利用率,充分的利用了cpu的计算资源。

    因此,如果你的程序是只进行cpu的计算就over,那么采用线性编程就得不偿失,因为cpu一次只能完成一次计算,如果将一次正在进行的计算挂起,开始一个新的计算,新的计算进行一半,又被挂起,回头执行上次的计算;大家从现实当中就可以考虑一下:一个学生在同一时间,是只能做一门功课的,当前正在做语文作业,做了一些之后放下,开始做数学,那么这时还得打开数据作业本,整理思路,找到老师布置的科目等,然后开始做;然后做了一半,又放下开始做剩余的语文作业。。。。。。不用再描述下去了吧?所以,只进行cpu计算的程序,是不需要多线程的。而如果程序包括多个执行步骤,而其中的某一个步骤比较耗时,程序想将一次计算完毕,需要等待耗时的操作返回,这个时候就得考虑线性编程了。

    展开全文
  • 概念通俗的讲解之前,先看一下并发和并行的概念吧。并发:并发(Concurrent),在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。并行:并行...

    前言

    并发和并行的区别,相信很多初出茅庐的程序员都会被问到这个问题吧,这两个概念极容易混淆。今天,我们就来通俗地聊聊并发和并行的区别。

    概念

    通俗的讲解之前,先看一下并发和并行的概念吧。

    并发:并发(Concurrent),在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。

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

    并行

    我们在玩电脑的时候,计算机可以“同时”运行着音乐软件和IDEA,我们可以边敲代码,边听音乐,计算机同时的在做多件事情。在单核cpu的计算机中,我们似乎也能“同时”做这些事情,但这不是真正意义上的并行,其底层是由于cpu快速切换执行任务,给我们一种同时运行的错觉而已。但是,当计算机是多核cpu的时候,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这时候才是真正的“同时”进行,我们称之为并行。就好比,一个网吧,它有多台电脑可以同时满足多位客户的上网需求,这就是并行,同时进行,互不争抢。

    并发

    并发,指的是多个事情,在同一段时间段内发生了。 同样,我们可以拿网吧来举例子。例如,一个网吧每天晚上六点到晚上十点的用户量特别大,这时候可以称之为并发量大。假如该网吧有100个机子,但是晚上六点到晚上十点却有一百五十人来上网,这时候就有五十人无法正常上网,要么该五十人在此等待,要么就离开网吧。网吧处理这个一百五十人的上网请求,不是在同一时刻进行的,而是在一段时间内处理的。其实,这就是并发。

    并发和并行的区别

    总的来说,并发,指的是多个事情,在同一时间段内同时发生了;并行,指的是多个事情,在同一时间点上同时发生了。这两者都是处理多个事情,区别就是在于是否“同时”。也可以用下图很好的理解

    101f2cf420d7288d6a92a4edac29d351.png

    图片来源与互联网,侵权删除

    展开全文
  • 并发和并行的区别 并发:一段时间有很多事情要做,强调要做,事情已经发生 举例:一条道路,有很多车辆等待通过。这是并发 并行(parallel): 互相不干扰的同一时刻做几件事,强调在做 举例:同一时刻,多条车道,每...
  • 并发并行编程概念

    2019-03-14 18:38:30
    并发和并行编程概念 做并发编程之前,必须首先理解什么是并发,什么是并行,什么是并发编程,什么是并行编程。并发编程目标是充分利用处理器每一个核,以达到最高处理性能。 解释一:并行是指两个或者多个...
  • 并发和并行的区别 并行:在同一个时间点上同时有几件事情可以同时做,核心是有这么多事情同时做 并发:在一段时间内,能把指定的事情干完就行,核心是有这么多事情要做 举例 在一条乡村公路.在同一段时间内有许多车辆要...
  • 并发和并行 进程和线程的概念

    千次阅读 2017-01-15 21:29:07
    并发和并行  ---并发指一个CPU可以异步处理多个进程  ---并行则是一个CPU同时处理多个进程 对于多核心CPU我们可以把系统看做是运行在准并行环境中进程集合。在进程(程序)间快速反复切换叫做多任务处理。 ...
  • 纠错--并发和并行的区别

    千次阅读 多人点赞 2019-10-24 19:45:30
    并行性和并发性是既相似又有区别的两个概念,再开始分析之前,我们先给出并发和并行的概念。 ​ 并行是指两个或多个时间在同一时刻发生。 ​ 并发是指两个或多个事件在同一时间间隔内发生。 ​ 大家看到的图一般...
  • 一、前言很多人会把并发并行的概念弄混,有时候说并发有时候说并行,那么两者究竟有啥区别那,本节我们就来澄清下两者概念。二、并发与并行首先我们先看下什么是进程,比如你打开的微信app就是一个进程、打开的手...
  • 多核与多处理器多核()多核处理器就是指单个 CPU 中有多个可执行...并发并行并发()并发执行定义是,多个程序在一段重叠时间段中开始、运行与结束,但这些程序并没有在任何一个时刻同时在执行。如下图左半...
  • 通俗的讲解之前,先看一下并发和并行的概念吧。 并发:并发(Concurrent),在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。 并行:并行...
  • 一、前言很多人会把并发并行的概念弄混,有时候说并发有时候说并行,那么两者究竟有啥区别那,本节我们就来澄清下两者概念。二、并发与并行首先我们先看下什么是进程,比如你打开的微信app就是一个进程、打开的手...
  • 摘要:并发并行是两个既相似而又不相同的概念并发性,又称共行性,是指能处理多个同时性活动的能力;并行是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行,也亦是说并发事件之间不一定要同一...
  • 并发:Concurrency 指在某个时间段内,多任务交替处理能力。 并行:Parallelism 指是同时处理多任务能力。 两者核心区别在于...并行和并发的目标都是尽可能快地执行完所有任务。 并发程序特点: 并发程序
  • 现在我们都说设计可并行、高并发的程序,而且我们很多时候会在...并行的概念比较简单,并行总是执行(executions)相关,很多东西同时执行就是并行;而并发则是通过一些方式组织你的程序,让它可以分成多个模块去独...
  • 文章目录并发和并行并发并行同步和异步同步异步 并发和并行 并发 指在某一时间段多个程序(任务)都是串行执行,而不是在某一个时间点上都处于运行状态。一个时间点上只有一个程序或任务在运行。在同一时间中多个...
  • 并发和并行都给用户营造了程序'同时'运行感觉 但是 属性 并发 并行 相对对象 单核CPU 多核CPU 是否真正实现同时运行 因为一个CPU只能运行一个程序,所以并发是通过时间片快速上下文切换,给...
  • 现在我们都说设计可并行、高并发的程序,而且我们很多时候会在潜意识里觉得自己对并行(Parallelism)和并发(Concurrency)...并行的概念比较简单,并行总是执行(executions)相关,很多东西同时执行就是并行;而并发...
  • 近期发现部分同学对并发并行和同步三个概念的理解有混淆,所以做一下简单名词解释,并用一个(写很烂)故事来帮助大家理解 :) 名词解释 并发 (Concurrency):并发是一种机制,即指“同时有多个请求被...
  • 并发和并行的区别

    2020-04-20 17:21:13
    但是并发和并行的含义却是不同的。博主也是参考了很多篇文章之后才初露头角,勉强了解了一些。现在将其总结下来,供日后方便查看。 概念     并发:是指程序含有多个逻辑上的独立执行块,他们...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,872
精华内容 1,148
关键字:

并发和并行的概念