(二)关于性能测试应知道 什么是串行?什么是并发?什么是并行?并发与并行的区别是什么?三者的区别是什么?

前言


在网上看到说并发是多个任务交替使用CPU,同一时刻还是只有一个任务在跑,并行是多个任务同时跑?

但是多线程叫做并发,多线程程序在多核CPU上面,在没有资源竞争时,他们应该也是同时在跑的,那这怎么解释,这两者到底有什么区别?

并发与并行的区别是什么?

什么是串行?

什么是并发?

什么是并行?

三者的区别是什么?


串行(serial)

串行,在操作系统中编程中,指流式编程,比如需要做A、B、C三个不同的函数方法,因执行顺序为ABC,需要等待A执行完毕后再执行BC,如果A执行阻塞或停止异常则会导致BC不能运行,从执行效率上看是依次执行执行效率一般。

 

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

 

 

 

 

并行(Parallelism)
并行是指“并排行走”或“同时实行或实施”。

在操作系统中是指,一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。对比地,并发是指:在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行)。

 

 

 

 

串行和并行的区别

串行:同一时刻只能做一件事依次执行,完成相同数量的任务耗时较长;

并行:相同数据的任务,同一个时刻可以做多件事,队列短完成速度相对较快。

 

 

 


 并发与并行的区别

 

并发:

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

并行:

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

 

 

 

并发和并行是即相似又有区别的两个概念,并行是指两个或者多个事件在同一时刻发生;

而并发是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。

倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可以同时执行。


 “大白话”解释小结


串行:喂?你在做什么呢?买菜啊?好的,到家了说一声。啊?到家了?那你到幼儿园接娃吧。

串行的特点:前一个任务没搞定,下一个任务就只能等着。

并行:来,这是你的盖浇饭,这是我的胡辣汤。咱俩一起吃。

并行的特点:两个任务在同一时刻互不干扰的同时执行。

并发:你去买个菜,顺路把邮件发了;路过幼儿园时带娃回家。

并发的特点:同时安排若干个任务,这些任务可以彼此穿插着进行;有些任务可能是并行的,比如买菜、发邮件和去幼儿园的某些路途是重叠的,这时你的确同时在做三件事;

但进菜市场和发邮件和接娃三者是互斥的,每个时刻只能完成其中一件。换句话说,并发允许两个任务彼此干扰。

并发的关键是有处理多个任务的能力,不一定要同时。

并行的关键是有同时处理多个任务的能力。
————————————————
版权声明:本文为CSDN博主「Benjamincsdn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_25305833/article/details/121893054

posted @   还是张先森  阅读(812)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示