并行与并发区别举个例子,如果有一条高速公路上面有4条车道,那么最大的并行车辆就是4辆,此条高速公路同时并排行驶的车辆小于等于4辆的时候,车辆就可以并行行驶,CPU也是这个原理,一个CPU相当于一条高速公路,核心数或者线程数就相当于可以并排同行的车道,而多个CPU就相当于有多条高速公路。
当谈到并发的时候一定要加一个时间单位,也就是描述单位时间内的并发量是多少?离开了时间单位其实是没有意义的,俗话说一心不能二用,这对计算机也一样,原则上一个CPU只能分配给一个进程,以便运行这个进程。我们通常使用的计算机中只有一个CPU,要让它同时运行多个进程,就必须使用并发技术。实现并发技术相当复杂,最容易理解的就是“时间片轮转进程调度算法”。并发指应用能够交替执行不同的任务,比如单CPU核心下执行多线程并非是同时执行多个任务,如果你开2个线程执行,就是在几乎不可能察觉到的速度不断的去切换这2个任务,以达到”同时执行的效果“,其实真正意义上并不是同时执行的,只是计算机的速度太快,我们无法察觉而已。
并行指应用能够同时执行不同的任务,比如吃饭的时候可以看电视。这2件事情可以同时执行。
两者区别:一个是交替执行,一个是同时执行。
本篇为学习并发编程而理解并行与并发含义,2020年03月20日 晚24:23 wangmo
来源:oschina
链接:https://my.oschina.net/u/4494332/blog/3215080