并发和并行的理解
2016-11-10 本文已影响76人
jackbom
并发只是一种宏观上的并行,微观上是线性处理的,只不过资源在某一个上被阻塞,所以看起来是并行的。实际线程是在排队,唤醒,执行,所有线程在轮流使用CPU。
并行的前提条件,多核CPU,多个程序同时在多个CPU上执行。 并发,就像一个人(cpu)喂2个孩子(程序),轮换着每人喂一口,表面上两个孩子都在吃饭。并行,就是2个人喂2个孩子,两个孩子也同时在吃饭。并发只是一种宏观上的并行,微观上是线性处理的,只不过资源在某一个上被阻塞,所以看起来是并行的。实际线程是在排队,唤醒,执行,所有线程在轮流使用CPU。
并行的前提条件,多核CPU,多个程序同时在多个CPU上执行。 并发,就像一个人(cpu)喂2个孩子(程序),轮换着每人喂一口,表面上两个孩子都在吃饭。并行,就是2个人喂2个孩子,两个孩子也同时在吃饭。