使用道具 举报
Post by huyongzs;1884970 为什么在进入父进程空间的时候会调用之前的打印语句2 ======= 你是问为什么会出现这种顺序对吧?(也就是语句4在语句3之后运行的顺序) 这个问题涉及到基础的操作系统原理。你要能理解多道程序设计。 简单来说就是现代操作系统的分时特性和调度的相关知识。 现代计算机的CPU每次只能运行有限的进程数量。过去一般是一个进程,现在由于多核计算机的出现可以同时运行的进程多了起来。 那么我们看到的非常多的进程同时运行其实是一个假象,其实他们是轮换运行的。 现代操作系统中的分时特性简单来说就是把系统运行多个进程的时间分的一片一片的。 按照固定的算法,每个进程公平的得到他应该得到的时间长度来运行,时间一到就更换下一个。 你用了fork调用。就出现了两个进程。他们在时间的轮换上是平等的。轮换执行的。决定他们的是那个固定的算法。其实非常微妙,对于我们人来说多个程序的轮换顺序是非常不好预测的,也就是不能预测。 其实你这个程序的执行何止是会有这种顺序。 建议你学习国外的操作系统原理书来提高。不但可以学到操作系统原理,还可以学习到一些相对复杂问题的解决方法。比如互斥,多道,调度,存储管理等一些概念。
本版积分规则 发表回复 回帖后跳转到最后一页