云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

什么是并发、并行、串行?

jxf315 2025-04-24 01:59:01 教程文章 21 ℃

【死记硬背】

并发:两个任务整体看上去是同时执行,在底层,两个任务被拆成了很多份,然后一个一个执行,站在更高的角度看来两个任务是同时在执行的。

并行:两个任务同时执行,通常依托于多核处理器或多计算机系统。

串行:一个任务执行完,才能执行下一个任务。

【答案解析】

并发、并行和串行是描述任务执行的三种方式。

并发

并发(Concurrency)指在同一时间段内,看似有多个任务同时进行,但实际上可能并非真正的同时执行。在单处理器或多处理器系统中,通过操作系统的时间片轮转、线程调度、异步编程等方式,使得多个任务能够交替进行,给用户带来“同时”执行的假象。

并发的关键特征包括:

时间重叠:多个任务在宏观上看起来是同时进行的,但在微观层面,它们可能是交替执行,即在一个时间点上只有一个任务实际占用处理器资源。

资源共享:并发任务可能共享系统资源,需要通过锁、信号量等机制来协调对共享资源的访问,以保证数据的一致性和避免竞态条件。

非阻塞执行:并发编程通常涉及非阻塞操作,使得一个任务在等待某个事件(如 I/O 完成)时,其他任务可以继续执行,提高了系统的整体效率。

并发主要应用于需要响应多个用户请求、处理大量 I/O 操作、实现高吞吐量服务等场景,它能够提升系统的交互性和利用率,但同时也带来了复杂性,如死锁、竞态条件等并发问题。

并行

并行(Parallelism)是指两个或多个任务真正意义上的同时执行,通常发生在具有多个处理器核心、多台计算机或其他并行计算架构的环境中。

并行执行的特点包括:

物理上的同时性:多个任务的指令在同一时刻被执行,充分利用了硬件提供的并行计算能力。

独立性或可分解性:并行执行的任务通常是可以并行分解的,即它们之间没有严格的执行顺序依赖,或者可以通过合理的划分和通信机制实现并行处理。

加速比:理想情况下,并行执行能够显著减少总执行时间,理论上,N 个任务在 N 个处理器上完全并行执行的加速比可达 N 倍。

并行计算广泛应用于高性能计算、大数据处理、机器学习训练、图像渲染等领域,通过并行算法和并行编程模型(如 OpenMP、MPI、CUDA 等)实现大规模计算任务的高效执行。

串行

串行(Serial)是指任务按照严格的顺序逐个执行,每个任务必须等待前一个任务完成之后才开始。在单处理器系统或只有一个执行线程的环境中,任务只能以串行方式进行。

串行执行的特点是:

顺序性:任务按照一定的顺序依次执行,不存在任务间的重叠执行。

资源独占:在执行过程中,系统资源(如CPU、内存等)被当前执行的任务完全占用,直到该任务结束。

无并发:不存在多个任务同时进行的现象。

串行执行适用于对数据一致性要求高、依赖性强、无需利用多核或多处理器优势的任务场景。

【温馨提示】

点赞+收藏文章,关注我并私信回复【面试题解析】,即可100%免费领取楼主的所有面试题资料!

最近发表
标签列表