网站首页 > 教程文章 正文
【死记硬背】
并发:两个任务整体看上去是同时执行,在底层,两个任务被拆成了很多份,然后一个一个执行,站在更高的角度看来两个任务是同时在执行的。
并行:两个任务同时执行,通常依托于多核处理器或多计算机系统。
串行:一个任务执行完,才能执行下一个任务。
【答案解析】
并发、并行和串行是描述任务执行的三种方式。
并发
并发(Concurrency)指在同一时间段内,看似有多个任务同时进行,但实际上可能并非真正的同时执行。在单处理器或多处理器系统中,通过操作系统的时间片轮转、线程调度、异步编程等方式,使得多个任务能够交替进行,给用户带来“同时”执行的假象。
并发的关键特征包括:
时间重叠:多个任务在宏观上看起来是同时进行的,但在微观层面,它们可能是交替执行,即在一个时间点上只有一个任务实际占用处理器资源。
资源共享:并发任务可能共享系统资源,需要通过锁、信号量等机制来协调对共享资源的访问,以保证数据的一致性和避免竞态条件。
非阻塞执行:并发编程通常涉及非阻塞操作,使得一个任务在等待某个事件(如 I/O 完成)时,其他任务可以继续执行,提高了系统的整体效率。
并发主要应用于需要响应多个用户请求、处理大量 I/O 操作、实现高吞吐量服务等场景,它能够提升系统的交互性和利用率,但同时也带来了复杂性,如死锁、竞态条件等并发问题。
并行
并行(Parallelism)是指两个或多个任务真正意义上的同时执行,通常发生在具有多个处理器核心、多台计算机或其他并行计算架构的环境中。
并行执行的特点包括:
物理上的同时性:多个任务的指令在同一时刻被执行,充分利用了硬件提供的并行计算能力。
独立性或可分解性:并行执行的任务通常是可以并行分解的,即它们之间没有严格的执行顺序依赖,或者可以通过合理的划分和通信机制实现并行处理。
加速比:理想情况下,并行执行能够显著减少总执行时间,理论上,N 个任务在 N 个处理器上完全并行执行的加速比可达 N 倍。
并行计算广泛应用于高性能计算、大数据处理、机器学习训练、图像渲染等领域,通过并行算法和并行编程模型(如 OpenMP、MPI、CUDA 等)实现大规模计算任务的高效执行。
串行
串行(Serial)是指任务按照严格的顺序逐个执行,每个任务必须等待前一个任务完成之后才开始。在单处理器系统或只有一个执行线程的环境中,任务只能以串行方式进行。
串行执行的特点是:
顺序性:任务按照一定的顺序依次执行,不存在任务间的重叠执行。
资源独占:在执行过程中,系统资源(如CPU、内存等)被当前执行的任务完全占用,直到该任务结束。
无并发:不存在多个任务同时进行的现象。
串行执行适用于对数据一致性要求高、依赖性强、无需利用多核或多处理器优势的任务场景。
【温馨提示】
点赞+收藏文章,关注我并私信回复【面试题解析】,即可100%免费领取楼主的所有面试题资料!
- 上一篇: 一张图读懂并发/并行/异步的区别
- 下一篇: 如何理解:程序、进程、线程、并发、并行、高并发?
猜你喜欢
- 2025-04-24 多线程和高并发介绍—基本概念《并行概念总结》
- 2025-04-24 如何理解:程序、进程、线程、并发、并行、高并发?
- 2025-04-24 一张图读懂并发/并行/异步的区别
- 2025-04-24 并发和并行的区别
- 2025-04-24 并发和并行的区别图解(一文彻底搞懂)
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)