简而言之,并发(Concurrency)只是交替执行多个任务,而 并行(Parallelism)是真正同时执行多个任务。

画图理解

正常的情况,计算机在每个时间点,只能执行一个任务。
假设计算机只有一个任务,那么每个时间点都是在做这个任务,如下图:
image

但是计算机能操纵的时间是毫秒级别的(甚至更低),而人能感受到也就秒级别,这里就存在一个时间差,有时间差就有操作空间了,假设有三个任务,任务_1分配在0.2毫米做一下,任务_2分配在0.4毫米做一下,任务_3分配在0.3毫米做一下,这样你眼睛感觉他一秒内是多个任务一起在干,其实只是交替地执行而已,这个就叫并发
image

并行并不一样,是真实的多条管道在单独地处理不同任务。
image

调度

  • 在单核CPU中,只有并发,没有并行;
  • 编程中,编程语言调用系统的接口,编程语言只负责调用,至于是并发还是并行,还得取决于你要执行程序的机器硬件和系统调度。
posted on 2023-09-12 14:21  Mysticbinary  阅读(10)  评论(0编辑  收藏  举报