操作环境:windows10系统、DELL G3电脑。
父进程和子进程可以并发执行吗?
可以并发运行,因为不管是父进程还是子进程都是系统分配资源的最小单位,都是独立的进程,是可以并发运行的,跟进程和线程的关系不一样。
“并行”是指无论从微观还是宏观,二者都是一起执行的,就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。
“并发”在微观上不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行,从宏观外来看,好像是这些进程都在执行,这就好像两个人用同一把铁锨,轮流挖坑,一小时后,两个人各挖一个小一点的坑,要想挖两个大一点得坑,一定会用两个小时。
从以上本质不难看出,“并发”执行,在多个进程存在资源冲突时,并没有从根本提高执行效率。
父子进程就是并发的。
在单处理器时,多进程并没有多大意义,单处理器的多任务处理只能是并发(交替以时间片轮询的),此时宏观上是多任务一起进行,实际在微观上却是以时间片交替进行,所以虽是在宏观上一起运行,但所用的时间与一个进程一个进程的执行并没有节省多少,当有进程需要挂起或睡眠时有可能时间会一点,但若是没有挂起或睡眠时,时间可能就会需要长一点,因为在时间片上不断进程转换内核也是需要消耗的。
但在多处理器时,多任务就真的能做到并行性了,多个进程分别在不同处理器上执行,仅在资源冲突和需要同步时,停顿等待一下,其它时间真正做到异步同时执行。但如上所说,当多个进程存在资源冲突时,并没有从根本提高执行效率。