并发、并行的区别和联系

一切阅读都是误读。

中英文对照

计算机领域,中文词汇表述含糊不清,不像英语表述的那么准确,并发和并行就是一个典型例子。

  • 并发 concurrent
  • 并行 parallel

字面意思

并发指的是同一时间发生,并行指的是同一时刻发生,两次词唯一的不同就是对同一时间或同一时刻的解释。

  • 同一时间:一般潜意识中的认为的时间粒度为秒这个级别
  • 同一时刻:一般认为是CPU指令中的同一周期内

这样可以得到一个结论,并行一定是并发的,但是并发的不一定是并行的。用数学语言来描述的话,并行是并发的真子集。

常见的表述语境

  • 单核CPU
    • 线程是并发执行的
    • 指令并行:一个周期运行两条指令
    • 单指令多数据并行
  • 多核CPU
    • 线程可以并行执行

应用场景

  • Nginx支持高并发连接
  • 多cpu情况下,Nginx的多进程模型可以提高并发能力
  • CPU密集型进程,需要增加CPU来提高系统的并行能力
  • 大规模并行计算机

你可能感兴趣的:(并发、并行的区别和联系)