什么是并发?什么是并行?

Posted on Wed, 25 Dec 2024 10:34:44 +0800 by LiangMingJian


什么是并发

并发,Concurrent,指在操作系统中,多个程序在同一时间段内交错执行。

并发虽然看起来像同时进行的,但其本质上是系统通过快速切换来高效利用资源,因此并发是会抢占资源的。

并发打个比喻,就是有多个队伍在排队上车,但车只有一辆,车一次只能上一个,因此这些队伍只能依次交替的逐个上车。

什么是并行

并行,Parallel,指在操作系统中,多个程序在同一时间段内在多个 CPU 核心上执行。

并行是真实的同时运行,操作系统可以让一个 CPU 核心执行一个进程,另一个 CPU 核心执行另一个进程,两个进程互不抢占 CPU 资源,因此并行是不会抢占资源的。

并行打个比喻,就是有多个队伍在排队上车,但车有很多辆,因此,虽然这些车也是一次只能上一个,但队伍可以分别在不同的车前逐个上车。

并行和并发的区别

资源占用的区别

  • 并发的多个任务之间是互相抢占资源的
  • 并行的多个任务之间是不互相抢占资源的

物理实现上的区别

  • 并发是一个处理器多条等待队列
  • 并行是多个处理器多条等待队列

代码实现的区别

  • 并发大多数时候通过多线程来编码实现
  • 并行大多数时候通过多进程来编码实现