架构系列——并发与并行的区别
前言 架构师需要了解并发与并行的区别,为高并发的处理打下基础 一、并发 1.并发图例 上图中,每个黑体代表一个事件发生,各个事件之间的发生时间段互不相交! 这是微观上来看不是同时发生的,也就是说同一时刻只能有一个事件发生。 但是一个事件用时特别短,比如0.0001秒,那么从宏观上来看,可以把这几个事件当成是同时发生的。 2.并发概念 指在同一时刻只能有一条指令执行,但多个线程被快速的轮换执行,使得在宏观上具有多个线程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个线程快速交替的执行。 二、并行 1.并行图例 上图中,每个黑体代表一个事件发生,各个事件之间的发生时间段可以相交! 无论是微观还是宏观上来看都是同时发生的,也就是说同一时刻有多个事件发生。 2.并行概念 指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。 三、与CPU的联系 打开任务管理器中的性能: 从上图可以看到处理器的个数以及线程数。CPU就是中央处理器 下面画一个具有6个中央处理器的电脑: 处理器1运行多个线程,这是并发;6个处理器之间的线程的运行就是并行, 实际上一个处理器不会只处理一个线程! 所以,可以总结如下: ▲单处理器只能发生并发,不会发生并行! ▲多处理器必然发生并行,其中每个处理器发生并发!