并发并行串行

  • 并发执行是多道程序系统中多个程序(逻辑上互相独立)或者一个程序中的多个程序段在执行的过程当中,时间互相重叠,一个程序执行没结束,另一个已经开始。

  • 并行执行是指一组程序按照独立的,不同步的速度执行,时间上不重叠;

  • 串行就是指令一个一个的执行。并行是指令同时并行执行。

总结:   并发是指多个线程轮流执行(单核CPU);   并行是指多个线程同时执行(多核CPU),微观上是同时的;   串行是指一个一个的执行,处理完一个才能处理下一个,不轮换;

并发的用途

并发通常是提高运行在单处理器上的程序的性能。

理论上,在单处理器上运行的并发程序开销应该比该程序串行运行开销大,因为这其中增加了上下文切换的代价。但是当出现阻塞时,情况就变得不同了。如果程序中的某个任务因为该程序控制范围之外的某些条件(通常是I/O)而导致不能继续执行,那么我们称这任务或线程阻塞了。若没有设计并发程序,那么程序可能会停止下来,直至外部发生变化。但是如果用并发编写程序,那么当一个任务发生阻塞时,其他任务还可以继续执行,因此这个程序可以保持执行。

事实上,从性能的角度看,如果没有任务发生阻塞,那么在单处理器上使用并发没有任何意义。