精华内容
下载资源
问答
  • 并行和并发的区别面试
    2020-04-23 14:32:19

    简单的理解图
    在这里插入图片描述

    更多相关内容
  • 面试官问这个,主要想考察 什么是并行? 什么是并发? 你能用生活中的例子举例嘛? 进一步观察候选者是否对并发编程是否思考过等等。要想学问大,就要多读、多抄、多写。 2、解答 2.1、并发 当有多个线程在操作时,...

    1、背景

    面试官问这个,主要想考察 什么是并行? 什么是并发? 你能用生活中的例子举例嘛? 进一步观察候选者是否对并发编程是否思考过等等。要想学问大,就要多读、多抄、多写。

    2、解答

    2.1、并发

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

    2.2、并行

    当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。这时的处理逻辑如下图:
    在这里插入图片描述

    2.3、并发与并行区别

    计算机操作系统中把并行性和并发性明显区分开,主要是从微观的角度来说的,具体是指:

    • 进程的并行性,多处理机的情况下,多个进程同时运行
    • 进程的并发性,单处理机的情况下,多个进程在同一时间间隔交替运行的

    进一步解释两者区别:

    • 并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生
    • 并行是在不同实体上的多个事件,并发是在同一实体上的多个事件
    • 并发是在一台处理器上“同时“处理多个任务,并行是在多台处理器上同时处理多个任务

    由此看来,我们常说的并发编程的目的就很明确,那就是是充分的利用处理器的每一个核,以达到最高的处理性能。

    2.4、生活中的例子

    例子一:

    • 三个人去饭堂打开水,只有一个水龙头,如果规定只能一个人装完开水再接着一个人打开水,这就说明打开水不支持并发也不支持并行;
    • 三个人去饭堂打开水,只有一个水龙头,如果规定可以交替装开水,这就说明打开水支持并发;
    • 三个人去饭堂打开水,现在有三个水龙头,三个人可以同时一起装开水,这就说明打开水支持并行。

    例子二:

    • 一个人,一把锄头,挖一个大坑,需要一个小时;
    • 三个人,一把锄头,挖三个大坑,你挖累了,换我来,挖完耗时需要三个小时,这就是并发;
    • 三个人,三把锄头,挖三个大坑,同时一起挖,挖完耗时需要一个小时,这就是并行。

    3、总结

    并发和并行,面试中出现的频率还是蛮高的。不管是招聘简历,还是实际工作中,都能看到高并发编程等相关的词汇。学会从日常生活中,工作中,思考并总结,举例子说明相关概念,显得很重要。本文总结了并发与并行的概念,并举例子说明,希望对大家学习有帮助。

    展开全文
  • Java面试题之并行和并发有什么区别

    万次阅读 多人点赞 2019-05-23 18:22:11
    在我们应聘的过程中,会有人问你,并行和并发他们之间是怎样的区别呢?虽然学过这些知识,但是没有进行整理,猛地一问也许你会回答不上来,所以在学习过程中我们要不断去整理所学的知识,进行系统化,才会有更加清晰...

    在我们应聘的过程中,会有人问你,并行和并发他们之间是怎样的区别呢?虽然学过这些知识,但是没有进行整理,猛地一问也许你会回答不上来,所以在学习过程中我们要不断去整理所学的知识,进行系统化,才会有更加清晰的脉络。
    那么今天为大家整理了

    并行和并发的区别?

    并发:一个处理器可以同时处理多个任务。这是逻辑上的同时发生。
    并行:多个处理器同时处理多个不同的任务。这是物理上的同时发生。
    有一个清晰地比喻:
    并发:一个人同时吃三个苹果。并行:三个人同时吃三个苹果。

    图文并茂:

    并发(concurrency):

    指同一时刻只能够执行一条指令,但是多条指令被快速的进行切换,给人造成了它们同时执行的感觉。但在微观来说,并不同同时进行的,只是划分时间段,分别进行执行。

    在这里插入图片描述

    并行(parallel):

    在同一时刻,有多条指令在多个处理器上同时执行。
    在这里插入图片描述

    这部分内容还是比较好理解的。到此结束!

    谢谢大家,请批评指正!

    展开全文
  • 面试必考的:并发和并行有什么区别

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

    本文公众号来源:漫话编程 作者:漫话编程

    并发和并行不知道你们在面试的时候有没有被问过,反正我之前是被问过的。在学习多线程的时候我也曾经解释过并行和并发的区别:入门Java多线程!。而这篇相对于我的解释要详细很多~

    某天下班后,我在家里进行电话面试,问到面试者这样一个问题:"能不能简单介绍一下你理解的并发和并行,并说明一下他们之间的关系"。但是面试者回答的并不好,所以我在面试评价中写到:"对并发和并行的概念不清楚"。这时,女朋友看到这句话。


    640

    640

    640

    640

    并发和并行最开始都是操作系统中的概念,表示的是CPU执行多个任务的方式。这两个概念极容易混淆。

    640

    640

    所谓"同时"进行

    我们现在使用的windows操作系统,是可以"同时"做很多件事儿的。比如我们可以一边看电影,一边聊QQ;一边听歌,一边打游戏。

    但是,这所谓的"同时",在操作系统底层可能并不是真正的意义上的"同时"。

    实际上,对于单CPU的计算机来说,在CPU中,同一时间是只能干一件事儿的。为了看起来像是“同时干多件事”,Windows这种操作系统是把CPU的时间划分成长短基本相同的时间区间,即”时间片”,通过操作系统的管理,把这些时间片依次轮流地分配给各个应用使用。

    这样,给用户的感觉是他在同时的进行听歌和打游戏,实际上,在操作系统中,CPU是在游戏进程和音乐播放器进程之间来回切换执行的。

    操作系统时间片的使用是有规则的:某个作业在时间片结束之前,整个任务还没有完成,那么该作业就被暂停下来,放弃CPU,等待下一轮循环再继续做。此时CPU又分配给另一个作业去使用。

    我们把目光聚焦在CPU的执行上,把这个过程放大的话,CPU就好像是一个电话亭。多个用户并不是同一时间在使用这个电话亭中的电话的,而是轮流使用的。

    由于计算机的处理速度很快,只要时间片的间隔取得适当,那么一个用户作业从用完分配给它的一个时间片到获得下一个CPU时间片,中间有所”停顿”,但用户察觉不出来。

    所以,在单CPU的计算机中,我们看起来“同时干多件事”,其实是通过CPU时间片技术,并发完成的。

    640

    640

    并发

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

    就想前面提到的操作系统的时间片分时调度。打游戏和听音乐两件事情在同一个时间段内都是在同一台电脑上完成了从开始到结束的动作。那么,就可以说听音乐和打游戏是并发的。

    640

    640

    并行

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

    这里面有一个很重要的点,那就是系统要有多个CPU才会出现并行。在有多个CPU的情况下,才会出现真正意义上的『同时进行』。

    640

    640

    并发与并行

    我们两个人在吃午饭。你在吃饭的整个过程中,吃了米饭、吃了蔬菜、吃了牛肉。吃米饭、吃蔬菜、吃牛肉这三件事其实就是并发执行的。对于你来说,整个过程中看似是同时完成的的。但其实你是在吃不同的东西之间来回切换的。

    还是我们两个人吃午饭。在吃饭过程中,你吃了米饭、蔬菜、牛肉。我也吃了米饭、蔬菜和牛肉。我们两个人之间的吃饭就是并行的。两个人之间可以在同一时间点一起吃牛肉,或者一个吃牛肉,一个吃蔬菜。之间是互不影响的。

    640
    所以,并发是指在一段时间内宏观上多个程序同时运行。并行指的是同一个时刻,多个任务确实真的在同时运行。

    640

    640

    640

    640

    并发和并行的区别

    并发,指的是多个事情,在同一时间段内同时发生了。  
    并行,指的是多个事情,在同一时间点上同时发生了。

    并发的多个任务之间是互相抢占资源的。  
    并行的多个任务之间是不互相抢占资源的、

    只有在多CPU的情况中,才会发生并行。否则,看似同时发生的事情,其实都是并发执行的。

    640

    就像上面这张图,只有一个咖啡机的时候,一台咖啡机其实是在并发被使用的。而有多个咖啡机的时候,多个咖啡机之间才是并行被使用的。

    640

    640

    最后

    乐于输出干货的Java技术公众号:Java3y。公众号内有200多篇原创技术文章、海量视频资源、精美脑图,不妨来关注一下!

    640?wx_fmt=jpeg

    转发到朋友圈是对我最大的支持!2_04.png


    推荐阅读:

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

    2022-05-07 17:51:53
    1、并行 并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行,所以无论从微观还是从宏观来看,二者都是一起执行的。 2、并发 并发(concurrency):指在同一时刻只能有一条指令执行,但...
  • 并发(concurrency)和并行(parallellism): 并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。 并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。 并行是...
  • 并行和并发区别

    万次阅读 多人点赞 2019-05-13 09:40:22
    并行和并发有什么区别并行(parallelism),是同一时刻,两个线程都在执行。 并发(concurrency),是同一时刻,只有一个执行,但是一个时间段内,两个线程都执行了。 并行 并发 【Java面试题与答案...
  •   串行:串行在时间上不可能发生重叠,第一个任务...  并行并行在时间上是重叠的,两个任务在同一时刻互不干扰的同时执行;   并发并发运行两个任务彼此干扰,同一个时间点只有一个任务执行,交替执行。 ...
  • 并行指多个事件在同一个时刻发生;并发指在某时刻只有一个事件在发生,某个时间段内由于 CPU 交替执行,可以发生多个事件。 并行没有对 CPU 资源的抢占;并发执行的线程需要对 CPU 资源进行抢占。 并行执行的线程...
  • 1,并行和并发有什么区别 并行:多个处理器或多核处理器同时处理多个任务。 并发:多个任务在同一个CPU核上,按细分的时间片轮流(交替)执行,从逻辑上来看并发的任务是同时执行; 简而言之: 并发=两个队列一台...
  • 并发:两个任务共享时间片段。在计算的场景中是指,只有一个CPU的情况下,有两个任务要执行,那么需要给任务随机分配时间片段,任务A执行一会儿,然后任务B执行一会儿,下一次执行任务A...并行:两个任务同时执行。在计
  • 有些任务可能是并行的,比如买菜、发邮件去幼儿园的某些路途是重叠的,这时你的确同时在做三件事;但进菜市场和发邮件接娃三者是互斥的,每个时刻只能完成其中一件。换句话说,并发允许两个任务彼此干扰。 ...
  • 并行并发区别 1、并行指多个事件在同一个时刻发生;并发指在某时刻只有一个事件在发生,某个时间段内由于 CPU 交替执行,可以发生多个事件。 2、并行没有对 CPU 资源的抢占;并发执行的线程...
  • 并行指在同一时刻,有多条指令(线程)在多个处理器上同时执行; 并发指在同一时刻只能有一个指令(线程)执行,但多个进程指令被快速轮换执行,使得宏观上具有多个进程同时执行的效果。
  • java并发编程面试

    2022-08-10 18:09:31
    并行和并发有什么区别? 什么是上下文切换? 线程进程区别 什么是线程进程? 创建线程有哪几种方式?,如何避免线程死锁 线程的 run() start()有什么区别? 什么是 Callable Future? 线程的调度策略 sleep...
  • 垃圾回收的并行并发 并发(Concurrent) 在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理器上运行。 并发不是真正意义上的“同时进行”,只是CPU把一 个...
  • 程序、进程线程及并行和并发区别 程序、进程线程 1、程序 程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是一个静态的实体。计算机程序(Computer Program)是指一组指示计算机或其他具有消息...
  • 并发并发编程又叫多线程编程,并发的实质是一个物理上的CPU在若干...②并行: 两个或者两个以上的事件或者活动在同一时刻发生。多道程序的环境下,允许程序同一时刻在不同的CPU同时执行。当系统有一个以上...
  • 线程是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的堆方法区资源,但是每个线程有自己的程序计数器栈区域。线程是CPU资源分配的基本单位。 线程之间进行协作时(生产者/消费者...
  • 串行 :在时间上不可能发生...并行: 在时间上是重叠的,两个任务在同一个时刻互不干扰的同行执行 并发: 允许两个任务彼此干扰,统一时间点、只有一个任务运行,交替执行 并发的三大特性 原子性、可见性、有序性 ...
  • 并行和并发有什么区别?” 关于这个问题,很多工作5年以上的同学都回答不出来。 或者说,自己有一定的理解,但是不知道怎么表达。 大家好,我是Mic,一个工作了14年的Java程序员。
  • 1.并行和并发有什么区别 并行针对于不同事物对象,并发针对于同一对象。 并行并发: 关注公众号免费领取100G大数据教学视频,内部有完整的java面试题合集对标阿里p6+,目前有jvm,java基础,java多线程...
  • java并发面试题(一)

    2021-01-09 13:57:06
    什么是进程,什么是线程,进程线程有什么区别? 答:进程是资源调度的最小单位,而线程是CPU调度的最小单位。一个程序下至少有一个进程,一个进程下面至少有一个线程,而一个进程下也开启多个线程来提高执行效率,...
  • spark学习之并行度、并发、core数分区的关系

    千次阅读 多人点赞 2022-03-02 23:22:02
    上次的百度面试遇到了关于spark的并发数的问题,今天我们...我将先对并行和并发的基本定义开始讲起,然后介绍spark中是如何控制并行和并发的,以及这些cpu核数、分区数有何关系。 1.并行和并发 并行并发: ...
  • 那么,线程进程究竟有什么区别呢?首先,进程是一个动态的过程,是一个活动的实体。简单来说,一个应用程序的运行就可以被看做是一个进程,而线程,是运行中的实际的任务执行者。可以说,进程中包含了多个可以同时...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,788
精华内容 15,515
关键字:

并行和并发的区别面试