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

    2021-04-06 11:06:23
    串行、并行和并发

    并行和并发


    通俗点讲:

    并行,是在同一时刻,多个程序在同时运行。
    比如秒针刚好跳到0刻度线,这时你按了下暂停键,然后截图,在这张图上你能看到有两个或多个程序。

    并发,在一段时间内,有多个程序在运行(没有“同时”两个字),但在某一时刻,只有一个程序在运行。
    比如秒针刚好跳到0刻度线,这时你开始录制视频,当秒针跳到6刻度线时,停止录制,你点击播放这段30秒的视频,你会看到,A程序先运行,过了几秒,A停止,B程序开始运行,又过了几秒,B停止,C程序开始运行,又过了几秒,C停止,A程序继续运行,又过了几秒,A停止,B程序继续运行,又过了几秒,B停止,C程序继续运行,然后视频播放完毕。你在这段视频播放过程中随便截一张图,在这张图上你只能看到一个程序,要么是A,要么是B,要么是C。
    这里为了形象化把时间跨度拉长,实际处理过程中执行时间间隔非常短。

    从宏观上看,一段时间过去,并行情况下所有程序从开始运行到运行完毕,并发情况下所有程序也从开始运行到运行完毕,你感觉这些程序都是同时开始同时完成的。
    但从微观上看,并行情况下所有程序是同时运行的,而并发情况下程序是交替运行的,并没有同时。
    造成这种假象的原因,是因为CPU是个很牛逼的东西,它的处理速度非常快,一旦程序在运行过程中遇到比如I/O操作,这不是CPU干的事,而且I/O操作比较慢,它不想等,就把这个程序先踢到一边,把下一个程序提上来运行,又遇到I/O操作了,把这个程序踢开,提取下一个程序,这时前面第一个被晾在一边的程序执行完I/O了,发个信号给CPU说我好了,CPU说好的我马上来,将手头的程序放下后取回第一个程序继续运行。由于人的眼力没那么快,所以你会感觉到程序好像同时开始运行了,并且没有间断,其实CPU是在快速换来换去操作的。
    现实世界中,人其实就在做大量并行和并发的事情,比如你双击某个播放器,然后切换到U盘拷贝文件,再看看播放器还在启动,你打开浏览器搜索最近有什么电影更新,同时将吸管插进饮料塞入嘴里,这时播放器打开了,你双击某部电影,然后浏览器的搜索结果出来了,先暂停电影播放,拔出吸管,塞一口蛋糕进嘴里,了解了最新电影信息后关闭浏览器,发现文件拷贝完了,安全拔出U盘,重新塞回吸管,按下播放键,美滋滋看电影。

    举个例子:

    前不久全新上映的正义联盟,达克赛德入侵地球,他从飞船上跳下来,朝陆地上的小伙伴们大吼道:“你们这帮蝼蚁排好队,一个一个让我砍!(串行)”
    宙斯、人类国王、亚马逊女王、亚特兰蒂斯国王等一众人等不服,同时喊道:“弟兄(姐妹)们,砍他!(并行)”
    成千上万人抄起武器干向达克赛德。(高并发场景)
    达克赛德心想这么多人我打不过啊,命令小弟们冲锋。(解决高并发场景)
    宙斯、战神阿瑞斯、狩猎女神阿尔忒弥斯、绿灯侠轮流冲上来打达克赛德(并发),达克赛德反弹宙斯的闪电、挡开战神阿瑞斯的斧子、闪避狩猎女神阿尔忒弥斯的神箭、一脚踹飞绿灯侠(并发),笑道:“你们不行啊。”四人被嘲讽,冲上来四打一(并行),达克赛德被打爆。

    实际应用场景:

    多CPU、CPU多核、计算机集群等都是提升并行计算能力。
    比如大批量导入导出数据、大数据分析、Flink多任务运行等都会运用到并行方式。

    电商购物系统、票务系统、预约挂号系统、网络游戏等都会频繁遇到并发场景。

    展开全文
  • 并行 并发

    2018-05-21 14:45:17
    并行 : 强调的是具有同时处理多任务的能力 并发 : 强调的是具有处理多任务的能力 但不一定同时 并行: 对于开发者来说 , cpu...并发: 不一定具备并行的能力,java多线程 就算是单核cpu 也会正常运行,并不是说...

    并行 : 强调的是具有同时处理多任务的能力
    并发 : 强调的是具有处理多任务的能力 但不一定同时

    并行: 对于开发者来说 , cpu 如果是多核的 他就具有并行同时处理线程的能力,比如说说当前设备中的唯一一个(为了便以理解我们说一个进程)进程中有8个线程同时被cpu的8个内核去分别调度 这就是并行的行为

    并发: 不一定具备并行的能力,java多线程 就算是单核cpu 也会正常运行,并不是说这些线程都会同时运行,因为存在线程调度的原因,比如果说线程调用了Thread.yield(); 然后当前线程处于可调度状态 其他等待的比此线程优先级高的线程被cpu调度。这种调度对于人感知的时间是完全忽略不计的所以。这是cpu并发的行为。

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

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

    并行和并发有什么区别?

    • 并行(parallelism),是同一时刻,两个线程都在执行。
    • 并发(concurrency),是同一时刻,只有一个执行,但是一个时间段内,两个线程都执行了。

     

    并行

    并发

     


    【Java面试题与答案】整理推荐

     

    展开全文
  • 进程的并行和并发

    2019-07-04 08:53:00
    一、进程的并行和并发 二、并行和并发的区别 一、进程的并行和并发 并行: 并行是指两者同时执行,比如赛跑,两个人都在不停的往前跑;(资源够用,比如三个线程,四核的CPU ) 并发: 并发是指资源有限的情况...

    一、进程的并行和并发

    并行: 并行是指两者同时执行,比如赛跑,两个人都在不停的往前跑;(资源够用,比如三个线程,四核的CPU )

    并发: 并发是指资源有限的情况下,两者交替轮流使用资源,比如一段路(单核CPU资源)同时只能过一个人,A走一段后,让给B,B用完继续给A ,交替使用,目的是提高效率。

    二、并行和并发的区别

    并行是从微观上,也就是在一个精确的时间片刻,有不同的程序在执行,这就要求必须有多个处理器。

    并发是从宏观上,在一个时间段上可以看出是同时执行的,比如一个服务器同时处理多个session。

    转载于:https://www.cnblogs.com/nickchen121/p/11130250.html

    展开全文
  • 串行、并行和并发

    2020-01-18 14:28:27
    串行、并行和并发 并行和并发 并发:1.一个处理器。2.逻辑上的同时运行 并行:2.多个处理器。2.物理上的同时运行 并发:一个咖啡机,交替 并行:多个咖啡机 并行:真正的“同时”运行,在同一时刻,有...
  • 摘要:并发并行是两个既相似而又不相同的概念:并发性,又称共行性,是指能处理多个同时性活动的能力;并行是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行,也亦是说并发事件之间不一定要同一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,604
精华内容 4,641
关键字:

并行和并发