参考:http://wenda.so.com/q/1370493310062865?src=140
“并行”是指无论从微观还是宏观,二者都是一起执行的,就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。
“并发”在微观上不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行,从宏观外来看,好像是这些进程都在执行,这就好像两个人用同一把铁锨,轮流挖坑,一小时后,两个人各挖一个小一点的坑,要想挖两个大一点得坑,一定会用两个小时。
从以上本质不难看出,“并发”执行,在多个进程存在资源冲突时,并没有从根本提高执行效率。
父子进程就是并发的。
以下是个人添加的见解:
在单处理器时,多进程并没有多大意义,单处理器的多任务处理只能是并发(交替以时间片轮询的),此时宏观上是多任务一起进行,实际在微观上却是以时间片交替进行,所以虽是在宏观上一起运行,但所用的时间与一个进程一个进程的执行并没有节省多少,当有进程需要挂起或睡眠时有可能时间会一点,但若是没有挂起或睡眠时,时间可能就会需要长一点,因为在时间片上不断进程转换内核也是需要消耗的。
但在多处理器时,多任务就真的能做到并行性了,多个进程分别在不同处理器上执行,仅在资源冲突和需要同步时,停顿等待一下,其它时间真正做到异步同时执行。但如上所说,当多个进程存在资源冲突时,并没有从根本提高执行效率。