并发与并行的区别

1、意思不同

1、并发:并发是指两个或多个事件在同一时间间隔发生,把任务在不同的时间点交给处理器进行处理。在同一时间点,任务并不会同时运行。

2、并行:并行是指两个或者多个事件在同一时刻发生,把每一个任务分配给每一个处理器独立完成。在同一时间点,任务一定是同时运行。

2、侧重不同

1、并发:并发侧重于在同一实体上。(如单核CPU/单线程)​​

  • ​​核心思想​​:让同一个处理器​​通过快速切换(时间片轮转),​​假装​​自己能同时处理多个任务。
  • ​​比喻​​:
    • 像 ​​一个厨师​​同时照看三口锅(炒菜、煮汤、煎蛋),但同一时刻只能翻炒其中一口锅,其他锅在等待。
    • 虽然看起来“同时进行”,实际是轮流操作。

2、并行:并行侧重于在不同实体上。(如多核CPU/多线程)​​

  • ​​核心思想​​:让多个处理器​​ 真正同时执行任务,每个处理器独立工作。
  • ​​比喻​​:
    • ​​三个厨师​​ 分别负责炒菜、煮汤、煎蛋,三人同时动手,互不干扰。

3、为什么“侧重实体”是关键?​

  • 并发​​的瓶颈在于 ​​任务切换成本​​(如保存/恢复上下文),适合I/O密集型任务(如Web服务器)。
  • ​​并行​​的瓶颈在于 ​​资源协调成本​​(如数据分片/同步),适合CPU密集型任务(如视频渲染)。

4、​用Nginx举例​​

  • ​​并发​​:单个Nginx worker用 ​​一个线程​​ 处理1000个连接(通过epoll快速切换)。
  • ​​并行​​:4个Nginx worker跑在 ​​4核CPU​​ 上,同时处理4个请求(物理并行)。

3、处理不同

1、并发:并发在一个处理器上“同时”处理多个任务。

2、并行:并行在多个处理器上同时处理多个任务。

posted @ 2025-07-09 15:01  人艰不拆_zmc  阅读(138)  评论(0)    收藏  举报