并行和并发

并行和并发


通俗点讲:

并行,是在同一时刻,多个程序在同时运行。
比如秒针刚好跳到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多任务运行等都会运用到并行方式。

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值