有这么一台计算机,F和M进程可以共同创建一个C进程,同时会把其拥有的资源复制给C,但在一般情况下并不会终结C进程,即使F和M自然终结。F和M所赋予C的资源中,自然不乏各种变量,但是C却没有完全操控这些变量的权限,其只有简单的使用全,也许你会误认为这是全局变量,其实不然,这些只不过是固化到硬件的变量而已,虽然C没有权限清理这些变量,但是当一定周期后,这些变量会主动出栈。

C在运行期间自然会创建各种各样的线程,并负责调度这些线程,为了保证这些线程能够正常运行,自然需要栈和各种变量的支持,不断有变量的进进出出,对于C来说,这些变量有些是主动的,当然也有些是被动的。同时有极少一部分变量会长期存在与栈中,直到C进程的运行空间发生转移,或者发生不可预见的异常,然后进行一次大规模的清栈,也就不得不消息了。。。

也许有一天你会发现C进程的栈中多了一个特殊变量,其生命周期甚至并不因为C进程运行空间的改变而发生变化,但是其仍然只是一个变量,只不过是C专属私有变量而已,只是C对其有更高的权限,甚至在C的运行空间发生改变时主动或者影响其地址空间的改变而已。当一个不可避免的事件触发后,自然这个变量这就该出栈了。