并发与并行
1. 为什么会有并发和并行?
在了解并发并行之前,我们首先需要知道,为什么会有并发和并行?
现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。所谓的多任务,就是操
作系统可以同时运行多个任务。
操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时
间后强制暂停去执行下一个任务,每个任务轮流执行。
任务执行的一小段时间叫做时间片,任务正在执行时的状态叫运行状态,任务执行一段时间后强制暂停去执行下一个
任务,被暂停的任务就处于就绪状态等待下一个属于它的时间片的到来。
这样每个任务都能得到执行,由于CPU的执行效率非常高,时间片非常短,在各个任务之间快速地切换,给人的感觉
就是多个任务在“同时进行”,这也就是我们所说的并发。
2. 定义(懵~)
并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
并行,在操作系统中是指,一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。对比地,并发是指:在同一个时间段内,两个或多个程序执行,有时间上的重叠(宏观上是同时,微观上仍是顺序执行)。
3. 看这你就懂啦
来个比喻,现在停水了,有两个人拿水桶去外面井里打水
并发:这就好像两个人用同一个水桶,轮流给家里提水,一小时后,两个人各自只提了一点水,要想提更多的水,一定消耗更多的时间。
并行:就好像两个人各拿一个水桶提水,一小时后,每人都存够了水。
|