什么是并发?什么是并行?
Posted on Wed, 25 Dec 2024 10:34:44 +0800 by LiangMingJian
什么是并发
并发,Concurrent,指在操作系统中,多个程序在同一时间段内交错执行。
并发虽然看起来像同时进行的,但其本质上是系统通过快速切换来高效利用资源,因此并发是会抢占资源的。
并发打个比喻,就是有多个队伍在排队上车,但车只有一辆,车一次只能上一个,因此这些队伍只能依次交替的逐个上车。
什么是并行
并行,Parallel,指在操作系统中,多个程序在同一时间段内在多个 CPU 核心上执行。
并行是真实的同时运行,操作系统可以让一个 CPU 核心执行一个进程,另一个 CPU 核心执行另一个进程,两个进程互不抢占 CPU 资源,因此并行是不会抢占资源的。
并行打个比喻,就是有多个队伍在排队上车,但车有很多辆,因此,虽然这些车也是一次只能上一个,但队伍可以分别在不同的车前逐个上车。
并行和并发的区别
资源占用的区别
- 并发的多个任务之间是互相抢占资源的
- 并行的多个任务之间是不互相抢占资源的
物理实现上的区别
- 并发是一个处理器多条等待队列
- 并行是多个处理器多条等待队列
代码实现的区别
- 并发大多数时候通过多线程来编码实现
- 并行大多数时候通过多进程来编码实现